Shell
刪除最舊的目錄,跳過其中兩個
我必須刪除最舊的目錄。但是,此操作中不必“包含”兩個目錄。
因此,目錄內容如下所示:
[root@myserver backup]# ls -la total 84 drwxr-xr-x 21 root root 4096 Jun 18 04:10 . drwxr-xr-x 15 root root 4096 Dec 30 11:42 .. drwxr-xr-x 9 root root 4096 Jan 11 07:25 2013 drwxr-xr-x 13 root root 4096 Jun 4 08:01 2014 drwxr-xr-x 2 root root 4096 Jun 12 04:20 2014-06-12 drwxr-xr-x 2 root root 4096 Jun 13 04:20 2014-06-13 drwxr-xr-x 2 root root 4096 Jun 14 04:20 2014-06-14 drwxr-xr-x 2 root root 4096 Jun 15 04:20 2014-06-15 drwxr-xr-x 2 root root 4096 Jun 16 04:20 2014-06-16 drwxr-xr-x 2 root root 4096 Jun 17 04:20 2014-06-17 drwxr-xr-x 2 root root 4096 Jun 18 04:20 2014-06-18 [root@myserver backup]#
在這種情況下,必須刪除目錄 2014-06-12,並且不應刪除目錄 2013 和 2014。
我嘗試執行下一個命令:
rm -f 'ls -l | grep 2014\- | head -1'
…但它不會刪除任何內容。
你能幫我如何實現這一目標嗎?
先感謝您!
無論目錄的名稱如何,此命令都有效。
要刪除第三舊的目錄:
ls --sort t -l | grep -v total | awk '{print $9}' | head -n -2 | tail -1 | xargs rm -rf
試試這個:
ls -1tr | grep 2014\- | head -1 | xargs rm -rf