Назад | Перейти на главную страницу

Удалить самый старый каталог, пропуская два из них

Мне нужно удалить самый старый каталог. Но два каталога не обязательно должны быть "включены" в это действие.

Итак, содержимое каталога выглядит так:

[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