2016-01-20 100 views
0

我想在目錄中刪除舊的文件時,文件的數量大於5我使用如何使用ls命令輸出RM特定目錄

(LS -1T |尾-n 3)

獲取目錄中最舊的3個文件。這完全符合我的要求。現在我想用rm在一個命令中刪除它們。當我在Linux服務器上運行這些命令時,請進入目錄並刪除不起作用,因此我需要使用find或ls與rm並刪除最舊的3個文件。請幫忙。 謝謝:)

+0

_CD到目錄和刪除不working_ - 怎麼樣? 'ls -1t'也只在當前目錄下運行,所以既然它可以工作,它必須已經在正確的目錄中。 – Armali

回答

0

如果要從某個任意目錄中刪除文件,請將目錄名稱傳遞給ls命令。默認是使用當前目錄。

然後使用$()參數展開的tail結果轉移到rm這樣

rm $(ls -1t dirname| tail -n 3) 
+0

我想刪除一個特定的目錄,我不能將目錄名傳遞給rm cmd嗎?有些像:'rm $(ls -lt | tail -n 3)' – user2340345

+0

如果我使用cd && rm $(ls -lt | tail -n 3),那麼它說沒有這樣的目錄。他們是zip文件,並沒有被刪除。 – user2340345

+0

我已更新答案,以便您可以從任何目錄中刪除文件。 –

0
rm $(ls -1t | tail -n 3) 2> /dev/null 
+0

爲什麼你重定向* stderr *?爲什麼不用'rm -f'? –