老手经验谈介绍UNIX高手的十大习惯(下)

文章作者 100test 发表时间 2008:02:01 15:28:40
来源 100Test.Com百考试题网


清单 12. 好习惯 6 的另一个示例:在当前 Shell 中运行命令列表

~ $ { cp ${VAR}a . &.&. chown -R guest.guest a &.&. \

> tar cvf newarchive.tar a. } | mailx admin -S "New archive"

在 find 之外使用 xargs

使用 xargs 工具作为筛选器,以充分利用从 find 命令挑选的输出。find 运行通常提供与某些条件匹配的文件列表。此列表被传递到 xargs 上,后者然后使用该文件列表作为参数来运行其他某些有用的命令,如以下示例所示:

清单 13. xargs 工具的经典用法示例

~ $ find some-file-criteria some-file-path | \

> xargs some-great-command-that-needs-filename-arguments

然而,不要将 xargs 仅看作是 find 的辅助工具;它是一个未得到充分利用的工具之一,当您养成使用它的习惯时,将会希望进行所有试验,包括以下用法。

传递空格分隔的列表

在最简单的调用形式中,xargs 就像一个筛选器,它接受一个列表(每个成员分别在单独的行上)作为输入。该工具将那些成员放置在单个空格分隔的行上:

清单 14. xargs 工具产生的输出示例

~ $ xargs

a

b

c

Control-D

a b c

~ $

您可以发送通过 xargs 来输出文件名的任何工具的输出,以便为其他某些接受文件名作为参数的工具获得参数列表,如以下示例所示:

清单 15. xargs 工具的使用示例

~/tmp $ ls -1 | xargs

December_Report.pdf README a archive.tar mkdirhier.sh

~/tmp $ ls -1 | xargs file

December_Report.pdf: PDF document, version 1.3

README: ASCII text

a: directory

archive.tar: POSIX tar archive

mkdirhier.sh: Bourne shell script text executable

~/tmp $

xargs 命令不只用于传递文件名。您还可以在需要将文本筛选到单个行中的任何时候使用它:



相关文章


关于Linux为什么最多能分4个扇区的解释
一种解读Linux操作系统内核源码的好方法
在Fedora中编译安装Mplayer的详细步骤
新手看招:用图形桌面访问Linux操作系统
老手经验谈介绍UNIX高手的十大习惯(下)
给Linux新手的建议与提示
Linux用防火墙伪装抵挡黑客攻击(1)
Linux用防火墙伪装抵挡黑客攻击(3)
Linux内核编译菜单中各选项代表的含义(1)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛