-exec的用法
注意:使用-exec命令时,命令会将所有匹配到的文件一起传递给-exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”
用法
1:-exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。
eg:下面的例子中,find命令匹配到了当前目录下的所有普通文件,并在‐exec选项中使用ls ‐l命令将它们列出
find . ‐type f ‐exec ls ‐l { } \;
‐rw‐r‐‐r‐‐ 1 root root 34928 2003‐02‐25 ./conf/httpd.conf
‐rw‐r‐‐r‐‐ 1 root root 12959 2003‐02‐25 ./conf/magic
‐rw‐r‐‐r‐‐ 1 root root 180 2003‐02‐25 ./conf.d/README
记住:在使用exec命令的时候,用户可能会执行删除命令,在使用删除命令删除文件时,应当先查看相应的文件,以免误删文件,造成损失!当使用诸如mv或rm命令时,可以使用‐exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。
eg:在下面的例子中, find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。 $ find . ‐name "*.conf" ‐mtime +5 ‐ok rm { } ;
按y键删除文件,按n键不删除。
xgars的用法
xgars与-exec的区别
xargs命令每次只获取一部分匹配到的文件而不是全部匹配到的文件,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去
xgars的用法
eg1:下面的例子查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件
find . ‐type f ‐print | xargs file
./.kde/Autostart/Autorun.desktop: UTF‐8 Unicode English text
./.kde/Autostart/.directory: ISO‐8859 text\
......
eg2:在在当前目录中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中
find . name "file*" print | xargs echo "" > /temp/core.log
cat /temp/core.log
./file6