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

Pro*_*tor 10 unix bash

可能重复:
命令行:管道查找结果到rm

最近我的外部硬盘驱动器上带有我的照片(大多数都在DVD上,但是......)由一些分区的friggery.

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

PhotoRec返回了超过一千个文件夹粉笔,从.txt文件到重要的.NEF.

因此,我试图通过使用unix来简化排序,因为OSX Finder会在选择和删除十亿个.txt文件的请求下崩溃.

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

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

找 .-name*.txt | R M

要么

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

所以它给了我一些我需要取消链接文件的BS.随你.

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

谢谢.

dog*_*ane 18

您无法将文件名传递给rm.你需要xargs改用.另外,记得引用文件模式".txt"或shell将扩展它.

find . -name "*.txt" | xargs rm
Run Code Online (Sandbox Code Playgroud)

  • 这有可能对带有空格的文件名进行堵塞.如果他们的find/xargs组合处理它,那就更好了:`find.-name"*.txt"-print0 | xargs -0 rm`创建ASCII NUL终止字符串. (3认同)

man*_*ana 16

find . -name "*.txt" -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)


b3h*_*0th 7

$ find  . -name "*.txt" -type f -delete
Run Code Online (Sandbox Code Playgroud)