`
cloudeagle_bupt
  • 浏览: 536442 次
文章分类
社区版块
存档分类
最新评论

Linux的find和xargs命令

 
阅读更多

如果需要把一条命令在标准输出上的输出结果,转换为另一个程序或或者另一个命令的参数,可以用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进行详细描述,感性趣的朋友可以参考下。

    Linux_的命令find_xargs详述(2).txt

    Linux_的命令find_xargs详述(1)

    Linux_的命令find_xargs详述(1).txt

    Linux_的命令find_xargs详述(1)

    linux find命令之xargs简单概述

    主要为大家详细介绍了linux find命令之xargs的简单使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Linux xargs命令详细介绍

    Linux xargs命令 1.功能: xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。因为以空格作为分隔符,所以有一些文件名或者其他意义的名词内含有空格的时候,...

    Linux文件查找命令find

    Linux文件查找命令find xargs

    可在windows使用的类linux工具xargs

    可在windows使用的类linux工具xargs,可以配合类liunx工具find进行文件处理。xargs的使用帮助为 xargs --help,实例可以上网查询。也可另外下载我的dos工具。

    002find和xargs.PDF

    find命令的使用

    Linux xargs命令的使用

    简单来说,xargs是给其他命令传递参数的一个过滤器,是构建单行命令的重要组件之一。 之所以要用到xargs,是因为由于很多命令不支持使用管道|来传递参数,例如: find /sbin -perm +700 |ls -l //这个命令是错误,...

    linux文本处理命令

    文本处理命令,包括find,xargs,grep,sed,awk命令的详解及实例分析。

    Linux中find命令的用法入门

    Linux系统下的Find 命令具有很强大的搜索功能,可以遍历整个文件系统。所以 find 命令很耗资源,有时候甚至会耗费很长时间,因此建议把它放在后台执行。 Find 命令格式如下所示: find pathname -options [-print -...

    linuxshell linux命令

    第一部分s h e l l 第1章文件安全与权限 第2章使用find和xargs 第3章后台执行命令 第4章文件名置换 第5章shell输入与输出 第6章命令执行顺序

    Linux命令学习 shell pdf格式

    第二章 使用find和xargs 第三章 后台执行命令 第四章 文件名置换 第五章 shell输入与输出 第六章 命令执行顺序 第二部分 文本过滤 第七章 正则表达式介绍 第八章 grep家族 第九章 AWK介绍 第十章 sed用法介绍 第十...

    LINUX命令、编辑器与SHELL编程PDF.part01

     还介绍了gawk、sed、find、sort、bzip2和正则表达式等内容。 内容简介要想真正高效地使用Linux,就必须全面掌握shell和命令行。通常必须购买两本书才能达到精通的目的:一本关于Linux基本概念和技术的指南,再...

    LINUX命令、编辑器与SHELL编程PDF.part02.rar

    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 ...

    Linux文本查找命令find的用法详解

    find 命令主要用于查找目录和文件,可以指定多种参数进行匹配。 用法:find +查找路径 +命令参数 [输出形式] 查找路径:告诉find在哪查找 命令参数:指定要查找的文件属性,属性包括多种,类型、名称、大小、修改...

    LINUX与UNIX SHELL编程指南.zip

    linux shell 脚本编程快速入门手册,系统介绍了linux 系统常用模块操作命令,文件安全与权限,使用find和xargs,后台执行命令,后台执行命令,shell输入与输出,命令执行顺序等

    Linux常用命令_MbyW.xls

    "find / -name walter find /home -amin -10 十分钟内访问过的文件 find /home -atime -10 十天内访问过的文件 find /home -cmin -10 十分钟内修改过的文件 find /home -ctime +10 十天内被改过、新增的文件 find /...

    在windows系统下使用类liunx工具“find”

    比windows系统下的dos命令find更强大,有dll文件,可以配合xargs工具使用。使用方法 “find --help”

Global site tag (gtag.js) - Google Analytics