2016-05-18 59 views
0

我有以下目錄結構下的子目錄中的文件,但不刪除子目錄本身:如何刪除在linux

/archive/file1.csv 
/archive/file2.csv 
/archive/myfile/my.txt 
/archive/yourfile/your.txt 

我想刪除其下的/存檔而不是它的子文件夾中的所有文件,所以刪除後,目錄結構應該是這樣的:

/archive/ 
/archive/myfile/ 
/archive/yourfile/ 

我曾嘗試以下兩個命令,但子文件夾下的文件不會被刪除(即My.txt文件和your.txt),任何人都知道爲什麼嗎?

find -L /archive ! -type d -exec rm -rfv {} + 
find -L /archive -type f -exec rm -rfv {} + 
+0

你不需要一個驚人的解決方案。你爲什麼不把它全部抹去,然後重新創建目錄? 'rm'然後'mkdir'? – UDKOX

+0

它被配置在一個xml文件中,find命令將被腳本調用。我只測試find命令部分,一個作業會定期執行這個刪除操作。 – jlp

回答

3

使用發現

$ find . ! -type d -delete 

確保你在正確的道路是。

+0

謝謝。任何想法爲什麼「RM」不起作用? – jlp

+0

它也應該工作,你試着用'\;'結尾# – karakfa

+0

非常感謝。似乎「-type f」不適用於-delete – jlp