find 命令-exec,xargs用法的一点总结

一  查找文件移动到指定目录

 [root@localhost jacky]# pwd
/home/test/tmp/jacky
[root@localhost jacky]# ls
file1  file2  file3
[root@localhost jacky]# ls ..
jacky
[root@localhost jacky]# find . -name "file*" -exec mv {} .. \;
[root@localhost jacky]# ls
[root@localhost jacky]# ls ..
file1  file2  file3  jacky
[root@localhost jacky]#

二  同MV一样,也可以用exec选项执行cp命令,如下:

  root@localhost jacky]# pwd
/home/test/tmp/jacky
[root@localhost jacky]# ls
file1  file2  file3
[root@localhost jacky]# ls ..
jacky
[root@localhost jacky]# find . -name "file*" -exec cp {} .. \;
[root@localhost jacky]# ls
file1  file2  file3
[root@localhost jacky]# ls ..
file1  file2  file3  jacky
[root@localhost jacky]#

三 使用xargs执行cp

root@localhost jacky]# ls
file1  file2  file3
[root@localhost jacky]# find . -name "file*" | xargs -i cp {} {}.bak
[root@localhost jacky]# ls
file1  file1.bak  file2  file2.bak  file3  file3.bak
[root@localhost jacky]#
 

四 使用xargs执行mv

  [root@localhost jacky]# pwd
/home/test/tmp/jacky
[root@localhost jacky]# ls
file1  file2  file3
[root@localhost jacky]# ls ..
jacky

[root@localhost jacky]# find . -name "file*" | xargs -i mv {} ..
[root@localhost jacky]# ls
[root@localhost jacky]# ls ..
file1  file2  file3  jacky
[root@localhost jacky]#

五  find后执行xargs提示xargs: argument line too long解决方法:

  find . -type f -atime +20 -print0 | xargs -0 -l1 -t rm -f

-l1是一次处理一个
-t是处理之前打印出命令

 六 xargs选项的其他用法

  [root@localhost jacky]# pwd
/home/test/tmp/jacky
[root@localhost jacky]# ls
file1  file2  file3
[root@localhost jacky]# ls ..
jacky
[root@localhost jacky]# find . -name "file*" | xargs -I [] cp [] ..
[root@localhost jacky]# ls ..
file1  file2  file3  jacky

使用-i参数默认的前面输出用{}代替,-I参数可以指定其他代替字符,如例子中的[]

七  xargs的-p参数的使用

  [root@localhost jacky]# pwd
/home/test/tmp/jacky
[root@localhost jacky]# ls
file1  file2  file3
[root@localhost jacky]# ls ..
jacky
[root@localhost jacky]# find . -name "file*" | xargs -p -i mv {} ..
mv ./file3 .. ?...y
mv ./file1 .. ?...y
mv ./file2 .. ?...n 
[root@localhost jacky]# ls
file2
[root@localhost jacky]# ls ..
file1  file3  jacky

-p参数会提示让你确认是否执行后面的命令,y执行,n不执行。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(职场,find,exec,xargs,休闲)