2012-07-14 124 views
0

在我的音樂目錄中,我爲每個單獨的藝術家和專輯都有子文件夾。我想製作一個自動化腳本進入每個子文件夾,並將所有內容剪切並粘貼到我的主音樂目錄中。腳本移動音樂後,我希望它刪除空的子文件夾。在python或shell腳本中的東西會很棒。有任何想法嗎?python或bash將子文件夾內容清空到主文件夾並刪除空子文件夾的代碼

+2

cut?糊?你想要的命令是'mv'。 – 2012-07-14 06:03:36

回答

0

find命令將列出指定目錄的子目錄中的所有文件。所以:

find . -type f 

這將產生一個文件名列表。所有這些文件最終移動到當前目錄,

mv `find . -type f` . 

,遞歸刪除任何空的子目錄,

find . -type d | xargs rmdir 

如果你的任何文件或目錄名在其中有空格,事情得到了很多更有意思的。但是,如果是這樣的話,你可以使用上述作爲出發點。

+0

查找命令非常適合生成文件列表,但是當我試圖移動它們時,我得到了這個錯誤「mv:invalid option - 'W' 嘗試'mv --help'以獲取更多信息。」 – 1mdxsec1 2012-07-14 03:06:12

+0

這聽起來像你有名字以'-'開頭的文件。你應該能夠通過'mv - \'find來告訴'mv'退出處理選項。 -type f \''。 – 2012-07-14 03:08:07

+2

不要在命令替換中將'mv'與'find'一起使用。對於包含空格的文件名(該音樂文件退出的可能性)將會失敗。使用'find ... -exec mv ... \;'或'find ... -print0 | xargs -0 mv ...' – 2012-07-14 06:05:55

0
#!/bin/bash 
cd ~/music # wherever your music directory is 
mv */* . 
rmdir * 2>/dev/null 
相關問題