在bash中查找和删除.txt文件

时间:2012-09-26 14:50:27

标签: bash unix

  

可能重复:
  Command line: piping find results to rm

最近我的外置硬盘驱动器上带有我的照片(大多数都在DVD上,但是......),有些分区还没有。

幸运的是,我能够将PhotoRec与Unix分区实用程序和PDisk重新组合在一起。

PhotoRec返回了超过一千个文件夹粉笔,里面装满了从.txt文件到重要文件的所有内容.NEF's。

所以我尝试使用unix来简化排序,因为OSX Finder会根据选择和删除十亿个.txt文件的请求而崩溃。

但是当我尝试查找和删除txt文件时,我遇到了一些BS,或者找到并将所有jpegs递归移动到一个名为jpegs的新文件夹中。我是unix noob,所以我需要一些帮助。

这是我在bash中所做的。 (我在ls列出我需要处理的所有文件夹和文件的目录中。)

找到。 -name * .txt | RM

sudo找到。 -name * .txt | rm -f

所以它给了我一些我需要取消链接文件的BS。不管。

我需要递归地找到所有.txt文件并删除它们,最好是详细的。

感谢。

3 个答案:

答案 0 :(得分:17)

您无法将文件名传递给rm。您需要使用xargs代替。另外,请记住引用文件模式".txt",否则shell会扩展它。

find . -name "*.txt" | xargs rm

答案 1 :(得分:15)

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

答案 2 :(得分:6)

$ find  . -name "*.txt" -type f -delete