2017-07-27 137 views

回答

1

獲取文件創建時間並不是微不足道的。參考這裏以供參考:https://unix.stackexchange.com/questions/20460/how-do-i-do-a-ls-and-then-sort-the-results-by-date-created

但是,如果你樂意到最後修改時間(這應該是罰款?),然後像這樣的一行應該做的。

ls -dt */ | tail -n +6 | xargs rmdir

  • ls -d */列出目錄-t列出他們爲了
  • tail -n +6打印所有,但最後五行
  • xargs rmdir電話rm -r每個那些迪爾斯(或者你可以使用rm -r如果他們」非空)
+1

它可能是+6首先跳過5並開始在第6行 –

0

它可以用ls完成,但解析ls輸出不安全。

由於沒有shell內置的檢索文件時間使用perl的解決方案。

perl -e ' 
    @A = sort {(stat($a))[9]<=>(stat($b))[9]} <*/>; 
    rmdir for splice (@A,0,-10) 
' 

測試

mkdir tmp && cd tmp 
for d in {A..Z}; do mkdir "$d"; done 
ls 

perl -e ' 
    @A = sort {(stat($a))[9]<=>(stat($b))[9]} <*/>; 
    rmdir for splice (@A,0,-10) 
' 

ls 

編輯:splice(@A,0,-10)可以更改爲@A[0..$#A-10],也許更容易閱讀。獲取除最後10個以外的所有元素。

相關問題