前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >批量删除文件好久不用的命令记不住存下来备查find ... -exec rm {} ;find ... | xargs rm -rffind ./ -type f -name "*.cpp"|xarg

批量删除文件好久不用的命令记不住存下来备查find ... -exec rm {} ;find ... | xargs rm -rffind ./ -type f -name "*.cpp"|xarg

作者头像
Albert陈凯
发布2018-04-08 15:26:27
1.5K0
发布2018-04-08 15:26:27
举报
文章被收录于专栏:Albert陈凯Albert陈凯

find ... -exec rm {} ;

find ... | xargs rm -rf

两者都可以把find命令查找到的结果删除,

其区别简单的说是前者是把find发现的结果一次性传给exec选项,这样当文件数量较多的时候,就可能会出现“参数太多”之类的错误,相比较而言,后者就可以避免这个错误,因为xargs命令会分批次的处理结果。

这样看来,“find ... | xargs rm -rf”是更通用的方法,推荐使用!

rm不接受标准输入,所以不能用find / -name "tmpfile" |rm

-exec 必须由一个 ; 结束,而因为通常 shell 都会对 ; 进行处理,所以用 ; 防止这种情况。 {} 可能需要写做 '{}',也是为了避免被 shell 过滤

find ./ -type f -exec grep iceskysl {} /dev/null ; ./表示从当前目录找 -type f,表示只找file,文件类型的,目录和其他字节啥的不要 -exec 把find到的文件名作为参数传递给后面的命令行,代替{}的部分 -exec后便跟的命令行,必须用“ ;”结束

find ./ -type f -name "*.cpp"|xargs grep "test" -n

find . -name "*cpp" -exec grep "test" {} ; -print

find ... -exec rm {} ; 亲测有效

find ... | xargs rm -rf 亲测会留下一些有特殊字符的文件

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.11.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • find ... -exec rm {} ;
  • find ... | xargs rm -rf
  • find ./ -type f -name "*.cpp"|xargs grep "test" -n
  • find . -name "*cpp" -exec grep "test" {} ; -print
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档