2015-02-23 123 views
-2

我有一個文件夾列表名稱爲2014-01-0,2015-05-1等文件夾,其中01和05是一週中考慮一週52周的數字
我需要在linux中編寫一個腳本,保留最新的2個文件夾並刪除剩餘的文件。我的解決辦法是目錄列表存儲在數組中,然後對它們進行比較,但我無法弄清楚如何去除「 - 」從文件夾名稱,並將其存儲在數組中。如果您有任何其他的解決辦法隨時提它刪除基於名稱的文件夾

+1

'在...中的名稱; do name = $ {name // - /}; ...'? – twalberg 2015-02-23 18:32:25

+0

非常感謝。腳本編程新手 – Himanshu 2015-02-23 18:38:40

+0

@twalberg你能幫我解釋一下如何將它添加到數組中。我剛開始腳本和所提到的解決方案的工作,但他們不存儲。如果我需要將列表作爲數組存儲,該怎麼辦?我知道'陣列=($(LS -t * /))'存儲列表作爲數組,但後來我也需要刪除 - 從陣「」 – Himanshu 2015-02-23 22:24:20

回答

0

當所有的弱號碼beneuth 10前導零,你可以用ls及給定的順序。
獲取最後兩行可能會減少tail -2
你想跳過這些,下面的解決方案是髒的(但對於學習指令不錯):

find . -type d -name 2\* | grep -v $(ls |tail -2|head -1) | grep -v $(ls | tail -1) | xargs echo rm -r 

刪除回聲會使事情的工作的話,假設你將有至少2個目錄。你不應該承擔...

當你首先要確定你要保持(與尾/頭),並將其存儲在一個VAR的目錄的,可以測試它們的存在後排除。

相關問題