我必须删除最旧的目录。 但是,这两个目录并不需要被“包含”在这个动作中。
所以,目录内容如下所示:
[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