2015-02-06 61 views
-1

我正在嘗試創建一個應該從目錄刪除多餘文件的單線程,以避免消耗太多空間。始終保持n個最新文件在目錄中

ls -r --sort=time | head -${{ls | wc -l} - n} | xargs rm -f 

n應代表我想保留在目錄中的文件數。

我在這裏做錯了什麼,無法弄清楚什麼。有人可以幫忙嗎?

回答

0

${{...}}看起來有點像TCL什麼的。這當然不是有效的shell腳本。

在Bash中(但不是在Bourne shell中),你可以使用((...))作爲算術表達式,我猜是你想要「 - n」做的。

過程替換的語法是帶圓括號的$(ls | wc -l)

合併這兩個,你可能最終得到類似(($(ls | wc -l) - n)),但你真的should not be parsing ls output無論如何。看看這個問題的許多重複之一,以獲得更好的方法。