使用一个命令来创建目录树
~ $ mkdir -p tmp/a/b/c
使用一个命令来定义复杂的目录树
~ $ mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}
使用选项 -C 来解压缩 .tar 存档文件到指定目录
~ $ tar xvf -C tmp/a/b/c newarc.tar.gz
按顺序执行多个命令
~ $ cd / ; ls -l
条件||控制执行多个命令
(如果tmp/a/b/c目录不存在,cd命令返回非0值,继续执行mkdir命令)
~ $ cd tmp/a/b/c || mkdir -p tmp/a/b/c
条件&&控制执行多个命令
(当tmp/a/b/c目录存在时,cd命令返回0,继续执行tar命令)
~ $ cd tmp/a/b/c && tar xvf ~/archive.tar
使用Subshell运行命令列表
(使用括号将命令列表包括在单个组中。这样做将在一个新的Subshell中运行命令,并允许您重定向或收集整组命令的输出)
~ $ ( cd tmp/a/b/c/ || mkdir -p tmp/a/b/c && /
> VAR=$PWD; cd ~; tar xvf -C $VAR archive.tar ) /
> | mailx admin -S "Archive contents"
使用xargs批处理执行命令
(前一个命令ls输出的log文件列表,作为下一个命令file输入的参数逐个运行)
~ $ ls /var/logs/*.log | xargs file
/var/log/anaconda.log: UTF-8 Unicode English text
/var/log/boot.log: empty
/var/log/prelink.log: ASCII English text
/var/log/scrollkeeper.log: UTF-8 Unicode text
/var/log/Xorg.0.log: ASCII English text
/var/log/yum.log: empty
使用awk分割文本文件
(这里使用/为分隔符)
~ $ echo 2009/09/09 > test.txt
~ $ awk -F/ '{print $1,$2,$3}' test.txt
2009 09 09
(参考了ibm developerWorks一些文章)