如果需要把一条命令在标准输出上的输出结果,转换为另一个程序或或者另一个命令的参数,可以用xargs命令。
# man xargs
可以看到例子:
1、 find /tmp -name core -type f -print | xargs /bin/rm -f
用find命令在tmp目录下查找以core命名的文件,然后删除它们。需要注意的是如果文件名字包含新行或者空格的话,这条命令将会被错误操作。
2、find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
这条命令就正确地处理了新行和空格,有可能带来的错误。
这条命令和上一条意思一样。
3、cut -d: -f1 < /etc/passwd | sort | xargs echo
大概列举了系统的用户。
4、find ./ -type f -print | xargs -i mv -f {} ./newdir
-i 表示 find 传递给xargs的结果 由{}来代替
注意:cshell和tcshell中,需要将{}用单引号、双引号或反斜杠,否则不认识。bash可以不用。建议加上。
例如:
find ./ -type f -print | xargs -t -i mv -f"{ }"./newdir 打印显示
find ./ -type f -print | xargs -p -i mv -f"{ }"./newdir 询问是否执行?
find ./ -type f -print | xargs -t -p -i mv -f"{ }"./newdir 打印显示,并询问是否执行?
管道是把一个命令的输出传递给另一个命令作为输入,比如:
command1 | command2
但是command2仅仅把输出的内容作为输入参数。
find . -name "install.log" -print打印出的是install.log这个字符串,如果仅仅使用管道,那么command2能够使用的仅仅是install.log这个字符串, 不能把它当作文件来进行处理。当然这个command2除了xargs。xargs就是为了能够对find搜索到的文件进行操作而编写的。它能把管道传来 的字符串当作文件交给其后的命令执行。
举个例子:
(1)$find . -name "install.log" -print | cat
./install.log #显示从管道传来的内容,仅仅作为字符串来处理
(2)$find . -name "install.log" -print | xargs cat
aaaaaa #将管道传来的内容作为文件,交给cat执行。也就是说,该命令执行的是如果存在install.log,那么就打印出这个文件的内容。
通过这个例子,应该很容易理解这样有什么不同了。当你要对匹配文件操作时,使用find and xargs。其实这都是运用了管道。xargs是shell命令的一个,可以把管道输入的内容转化为其参数要操作的文件。
文章出处:DIY部落(http://www.diybl.com/course/3_program/shell/shelljs/20090923/176675.html)
分享到:
相关推荐
文章主要对Linux文件查找命令find和xargs进行详细描述,感性趣的朋友可以参考下。
Linux_的命令find_xargs详述(1)
Linux_的命令find_xargs详述(1)
主要为大家详细介绍了linux find命令之xargs的简单使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Linux xargs命令 1.功能: xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。因为以空格作为分隔符,所以有一些文件名或者其他意义的名词内含有空格的时候,...
Linux文件查找命令find xargs
可在windows使用的类linux工具xargs,可以配合类liunx工具find进行文件处理。xargs的使用帮助为 xargs --help,实例可以上网查询。也可另外下载我的dos工具。
find命令的使用
简单来说,xargs是给其他命令传递参数的一个过滤器,是构建单行命令的重要组件之一。 之所以要用到xargs,是因为由于很多命令不支持使用管道|来传递参数,例如: find /sbin -perm +700 |ls -l //这个命令是错误,...
文本处理命令,包括find,xargs,grep,sed,awk命令的详解及实例分析。
Linux系统下的Find 命令具有很强大的搜索功能,可以遍历整个文件系统。所以 find 命令很耗资源,有时候甚至会耗费很长时间,因此建议把它放在后台执行。 Find 命令格式如下所示: find pathname -options [-print -...
第一部分s h e l l 第1章文件安全与权限 第2章使用find和xargs 第3章后台执行命令 第4章文件名置换 第5章shell输入与输出 第6章命令执行顺序
第二章 使用find和xargs 第三章 后台执行命令 第四章 文件名置换 第五章 shell输入与输出 第六章 命令执行顺序 第二部分 文本过滤 第七章 正则表达式介绍 第八章 grep家族 第九章 AWK介绍 第十章 sed用法介绍 第十...
还介绍了gawk、sed、find、sort、bzip2和正则表达式等内容。 内容简介要想真正高效地使用Linux,就必须全面掌握shell和命令行。通常必须购买两本书才能达到精通的目的:一本关于Linux基本概念和技术的指南,再...
Sobell是多本UNIX和Linux畅销书的作者,著有Prentice Hall PTR出版社出版的A Prac-tical Guide to Red Hat Linux,Second Edition一书,以及Addison-Wesley出版社出版的A Practical Guide to UNIX System,Hands-on ...
find 命令主要用于查找目录和文件,可以指定多种参数进行匹配。 用法:find +查找路径 +命令参数 [输出形式] 查找路径:告诉find在哪查找 命令参数:指定要查找的文件属性,属性包括多种,类型、名称、大小、修改...
linux shell 脚本编程快速入门手册,系统介绍了linux 系统常用模块操作命令,文件安全与权限,使用find和xargs,后台执行命令,后台执行命令,shell输入与输出,命令执行顺序等
"find / -name walter find /home -amin -10 十分钟内访问过的文件 find /home -atime -10 十天内访问过的文件 find /home -cmin -10 十分钟内修改过的文件 find /home -ctime +10 十天内被改过、新增的文件 find /...
比windows系统下的dos命令find更强大,有dll文件,可以配合xargs工具使用。使用方法 “find --help”