2012-09-26 83 views
9

可能重複:
Command line: piping find results to rm查找並刪除.txt文件在bash

最近frigged了我的外部硬盤驅動器與我的照片就可以了(大部分是在DVD無論如何,但。 )通過一些分區friggery。

幸運的是,我能夠將事情與PhotoRec另一個Unix分區實用程序和PDisk放在一起。

PhotoRec從一千個文件夾中返回了粉筆,其中包含從.txt文件到重要的.NEF文件的所有內容。

所以我試圖通過使用unix來簡化排序,因爲OSX Finder會在請求下簡單地崩潰,以便選擇和刪除十億個.txt文件。

但是當我嘗試查找和刪除txt文件時,我遇到了一些BS,或者找到並將所有jpegs遞歸移動到名爲jpegs的新文件夾中。我是unix noob,所以我需要一些幫助。

這是我在bash中所做的。 (我在目錄中列出所有需要採取行動的文件夾和文件)。

找到。 -name * .txt | RM

sudo的發現。 -name * .txt | rm -f

所以它給了我一些BS,我需要取消鏈接文件。隨你。

我需要遞歸查找所有.txt文件,並最好詳細刪除它們。

謝謝。

+0

-R選項添加到您的unix命令。 '找。 -name * .txt | rm -Rf' http://www.computerhope.com/unix/urm.htm – Sense

回答

15

您不能將文件名傳送到rm。您需要改用xargs。另外,請記住引用文件模式".txt",否則shell將擴展它。

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

這似乎已經照顧了.txt文件。出於某種原因,當我在那裏有一些txt文件離開之前。也許我很早就開始了,當時我的bash標題欄正在來回滾動rm和mv。無論如何,照顧它感謝。我將確保引用文件模式(它不在我的Lynda OSX Unix教程中)。 – Propagator

+2

這有可能堵塞文件名與空格。如果他們的find/xargs組合處理它,這更好:'find。 -name「* .txt」-print0 | xargs -0 rm'創建ASCII NUL終止字符串。 –

+0

是的。 Finder不能找到.txt文件。真棒。 – Propagator

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

這個很難記住,因爲{} \;業務結束 –

+0

這可能是事實,但是一旦你記住了這個語法,它可以讓你用'find'命令返回的東西做很多通用的東西。 – mana

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