首页 > UniX技术

老鸟经验谈 说明UNIX高手的10大习惯

时间:2008-12-25 18:38:31  作者:chinaitlab  我要投稿
当您经常使用某个系统时,往往会陷入某种固定的使用模式。有时,您没有养成以尽可能最好的方式做事的习惯。有时,您的不良习惯甚至会导致出现混乱。纠正此类缺点的最佳......

 

当您在命令列表中重新定义环境变量,并且您不希望将那些定义应用于当前 Shell 时,使用 Subshell 更可取。

 

在当前 Shell 中运行命令列表

 

将命令列表用大括号 ({}) 括起来,以在当前 Shell 中运行。确保在括号与实际命令之间包括空格,否则 Shell 可能无法正确解释括号。此外,还要确保列表中的最后一个命令以分号结尾,如以下示例所示:

 

清单 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 命令不只用于传递文件名。您还可以在需要将文本筛选到单个行中的任何时候使用它:

 

清单 16. 好习惯 7 的示例:使用 xargs 工具来将文本筛选到单个行中

来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门