find . -name "*.txt" -exec rm {} \;
find . -name "*.txt" | xargs rm {} 

-exec
    1.参数是一个一个传递的,传递一个参数执行一次rm
    2.文件名有空格等特殊字符也能处理
-xargs 
    1.一次将参数传给命令,可以使用-n控制参数个数
    2.处理特殊文件名需要采用如下方式:
    find . -name "*.txt" print0 |xargs -0 rm {} 

实验结果如下,可以清楚看到参数传递过程

[root@andes.com ~/tmp/dir]#find . -type f |xargs -t -n 2 echo echo ./data.txt
./env2.txt ./data.txt ./env2.txt echo ./env.txt ./export2.txt ./env.txt
./export2.txt echo ./s.txt ./d.txt ./s.txt ./d.txt echo ./export.txt ./set.txt
./export.txt ./set.txt echo ./fuck.txt ./fuck.txt [root@andes.com
~/tmp/dir]#find . -type f -exec echo begin {} \; begin ./data.txt begin
./env2.txt begin ./env.txt begin ./export2.txt begin ./s.txt begin ./d.txt
begin ./export.txt begin ./set.txt begin ./fuck.txt [root@andes.com ~/tmp/dir]#

技巧: find -print0  与 xargs -0 的结合避免文件名有特殊字符如空格,引号等无法处理:

 find . -name "*.txt" print0 |xargs -0 rm {} 

find 

       -print True; print the full file name on the standard output, followed
by a newline.   If you are piping the
              output of find into another program and there is the faintest
possibility that the  files  which  you
              are  searching  for  might  contain  a  newline, then you
should seriously consider using the -print0
              option instead of -print.  See the UNUSUAL FILENAMES section
for information about how unusual  char-
              acters in filenames are handled.

       -print0
              True;  print  the full file name on the standard output,
followed by a null character (instead of the
              newline character that -print uses).  This allows file names
that contain newlines or other types  of
              white space to be correctly interpreted by programs that
process the find output.  This option corre-
              sponds to the -0 option of xargs.

xargs 

       -0     Input items are terminated by a null  character  insteadof  by
     whitespace,  and the quotes and backslash are not special (every
     character is taken literally).  Disables the end of file string,
     which  istreated  like any other argument.  Useful when input
     items might contain white space, quote  marks,  or  backslashes.
     The  GNU find  -print0  option produces input suitable for this
     mode.

技术
©2019-2020 Toolsou All rights reserved,
SQLserver2008数据库的备份与还原MTCNN细节详解阿里企业邮箱smtp设置(实践)vant-ui组件调用Dialog弹窗异步关闭淘宝揭晓年度“丑东西”:羊毛毡买家秀“拔得头丑” 从技术角度看人人网,互联网营销ES6基础知识总结4-Promise()AWS Elastic Load Balancing (Amazon ELB)学习笔记网上买菜莫名被开通“美团月付” 逾期或影响个人征信Python常用函数