揭开UNIX高手的那些重大秘密(4) - 51CTO.COM

来源:百度文库 编辑:神马文学网 时间:2024/05/04 05:35:26

揭开UNIX高手的那些重大秘密(4)

与扩展名无关的自动解压

鉴于 Internet 上有如此众多的代码,您可能每天都会下载数十个文件。可能会出现这样的情况:所有那些文件都使用不同的方式打包 — 有的是 ZIP 文件,有的是 RAR 文件,还有很多是 tarball 文件,尽管每个包都使用不同的实用程序压缩。记住如何解压缩和扩展每种包格式将会使人精疲力尽。那么,为何不在单个命令中完成所有那些任务呢?下面这个函数在许多样例点文件中广泛可用:

 

ex () {            if [ -f $1 ] ; then            case $1 in            *.tar.bz2)   tar xjf $1        ;;            *.tar.gz)    tar xzf $1     ;;            *.bz2)       bunzip2 $1       ;;            *.rar)       rar x $1     ;;            *.gz)        gunzip $1     ;;            *.tar)       tar xf $1        ;;            *.tbz2)      tar xjf $1      ;;            *.tgz)       tar xzf $1       ;;            *.zip)       unzip $1     ;;            *.Z)         uncompress $1  ;;            *.7z)        7z x $1    ;;            *)           echo "'$1' cannot be extracted via extract()" ;;            esac            else            echo "'$1' is not a valid file"            fi            }            

 

这个函数 ex 扩展了 11 种文件格式;如果要处理其他包类型,该函数还可以扩展。一旦定义 — 例如,在一个 shell 启动文件中 — 就可以简单地键入 ex somefile,其中 somefile 以以下一种已命名扩展结束:

 

$ ls            source            $ tar czf source.tgz source            $ ls -1            source            source.tgz            $ rm -rf source            $ ex source.tgz            $ ls -1            source            source.tgz            

 

顺便说一下,如果您将今天下载的文件放错了位置,可以运行 find 来查找它:

 

$ find ~ -type f -mtime 0            

 

命令 -type f 查找纯文本文件,-mtime 0 查找自当天午夜以来创建的文件。

更多秘密

需要揭开的专家秘密还有很多。在 Web 上搜索 “shell auto-complete”,进一步了解自动完成特性,该特性用于在您键入一条命令时提供上下文敏感的扩展。另外,搜索 “shell prompts” 以了解如何定制您的 shell 提示:可以将其设置为彩色,可以设置您的当前工作目录或 Git 分支,还可以显示历史数目 — 如果经常调用历史,这是一个方便的参考信息。要查看工作示例,可在 Github 中搜索 “dot files”。许多专家都将他们的 shell 配置张贴在 Github 上。