LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 700|回复: 3

批量搜索+删除文件的问题

[复制链接]
发表于 2009-4-23 17:20:51 | 显示全部楼层 |阅读模式
朋友的机器原来用Windows中过各种各样的毒,
最近买了新机器,我帮他装了Linux,没装Windows,然后把旧硬盘里面的我的文档拷贝过来。
但是因为以前中过毒,各层目录里有成千上万个垃圾文件,都是"~xxx.tmp"类型的。
本来想用命令 find . -name "*.tmp"|xargs rm -rf 一次性都删除掉,
但是朋友的目录命名方法实在太乱,长长短短,各种符号包括引号都放在目录名里面,
因为有引号的存在,xargs就会报错:
xargs: unmatched single quote; by default quotes are special to xargs unless you use the -0 option

这种情况下怎么删呢?直接加上了-0选项一样没法删除,因为文件夹,文件名里都有很多其他奇怪的字符?
发表于 2009-4-23 21:28:51 | 显示全部楼层
find . -name "*.tmp" -exec echo rm -rf {}
或者
find . -name "*.tmp" -print0 | xargs -0 echo rm -rf
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-24 19:45:16 | 显示全部楼层
谢谢楼上,但很多文件还是删除不了,第一条命令提示: find: missing argument to `-exec'
回复 支持 反对

使用道具 举报

发表于 2009-4-25 03:05:43 | 显示全部楼层

  1. find . -name '*.tmp' -exec rm -rf '{}' \;
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表