2012-06-26 93 views
1

我有一個mp3播放器。我已經將它連接到我的個人電腦,該電腦以Ubuntu作爲操作系統。 我想刪除所有不是.mp3的文件。如何刪除不是mp3的文件?

我知道刪除它們的命令是rm * .mp3,但是否定這種命令的組合是什麼? 我試過了:rm^.mp3,^ mp3^[mp3],但他們沒有工作!任何建議?

回答

4

假設你正在使用bashextglob設置,你應該能夠:

rm !(*.mp3) 

我會嘗試測試與ls盲目運行命令之前:

ls !(*.mp3) 

要檢查值爲extglob

shopt extglob 

並打開它,如果需要的話:

shopt -s extglob 
+0

和BTW。不要只用實際的rm命令來嘗試一些東西。使用諸如「echo!(*。mp3)」之類的東西是檢查實際刪除內容的好方法... – bcelary

+0

完美地工作。非常感謝你! –

+0

也許你添加命令來設置extglob'shopt -s extglob' ;-) – tamasgal

1

使用GNU發現:

find FOLDER -not -iname '*.mp3' -not -type d -delete 

將從文件夾中啓動,並遞歸經過子文件夾,刪除它並沒有結束任何文件mp3(不區分大小寫),只要這個文件不是目錄。

+1

問題是要刪除所有不是mp3的文件,但thx無論如何! –

+0

它現在將刪除不是MP3的東西 – Squidly

1

從DIR

遞歸刪除所有非MP3文件打印他們:

find dir -type f | egrep -vi "\.mp3$" 

刪除它們

find dir -type f | egrep -vi "\.mp3$" | xargs rm -f 
3

刪除所有非MP3文件:

find . -type f ! -name '*.mp3' -delete