Удалить все папки в папке, но не папку (SSH аштв)

G2
На сайте с 25.04.2008
Offline
138
7048

Мне нужно удалить все папки которые созданы более чем 2 дня назад. Подскажите пожалуйста, как удалить все папки в папке, не удалив при этом саму папку?

все команды, с find удаляют и саму папку. как быть?

Поднимаю тИЦ (/ru/forum/752925) Покупаю QIWI (/ru/forum/684863) Налю $$$ через ePayments Card (https://www.epayments.com/registration?p=ae593ade60)
zexis
На сайте с 09.08.2005
Offline
388
#1

Написать скрипт на шеле.

Пишется за 10 минут.

V
На сайте с 25.07.2006
Offline
128
#2

Чтобы НЕ выбрать через find саму папку, в которой идет поиск (т.е. ".") добавьте, например, условие -wholename './*'

Чтобы задать время модификации файлы используйте -mtime, например -mtime -1

Перед удалением настоятельно рекомендую сначала проверить, что именно команда будет удалять, заменив команду удаления на что-то типа print

Приватный linux-администратор
SeCom
На сайте с 05.11.2010
Offline
76
#3

Всё на много проще. Например:

find /home/username/* -type d -ctime +2 |xargs -i rm -Rf {}

где,

/home/username/* - путь к директории, где искать (обязательно /* в конце)

-type d - укажем что искать директории

-ctime +2 - дата создания старше двух дней

xargs -i rm -Rf {} - все найденное удалить рекурсивно

Для проверки, что найдется именно то что нужно, но не корневая директория запустите просто

find /home/username/* -type d -ctime +2

Шаманы в администрировании серверов - Secom (https://secom.com.ua/en/) Skype: secom.support support@secom.com.ua
esetnod
На сайте с 16.07.2009
Offline
134
#4

Бэкап - всему голова.

Что бы не показывала диагностика, сначала делаться должен он = ) , а там и сносите.

Быстрый хостинг на SSD от $0.99 (http://just-hosting.ru/) | OpenVZ (http://just-hosting.ru/vds.html) и KVM (http://just-hosting.ru/vds-kvm.html) VDS от $7.95
Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#5

ls | xargs rm -rf

С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)
G2
На сайте с 25.04.2008
Offline
138
#6

ни от vapetrov ни от SeCom совет не сработал. работает только тот который удаляет саму папку:

#!/bin/sh

find /home/user/public_html/files/ -type d -mtime +1 -exec rm -rf {} \;

почему?

Andreyka
На сайте с 19.02.2005
Offline
822
#7

find /directory -mtime +1 -exec rm -rf {} \;

Удалит все внутри /directory, сама /directory будет целой

Не стоит плодить сущности без необходимости
SeCom
На сайте с 05.11.2010
Offline
76
#8
grey2:
ни от vapetrov ни от SeCom совет не сработал. работает только тот который удаляет саму папку:
#!/bin/sh
find /home/user/public_html/files/ -type d -mtime +1 -exec rm -rf {} \;

почему?

Интересно, а покажите,пожалуйста, что выводит команда

find /home/user/public_html/files/* -type d -ctime +2 (если в директории есть папки старше 2х дней)

или

find /home/user/public_html/files/* -type d (если нет директорий старше 2х дней)

G2
На сайте с 25.04.2008
Offline
138
#9
Andreyka:
find /directory -mtime +1 -exec rm -rf {} \;
Удалит все внутри /directory, сама /directory будет целой

спасибо! без -type d действительно не удаляет саму родительскую папку

Andreyka
На сайте с 19.02.2005
Offline
822
#10

Пожалуйста. Кстати, как там дела по повышению ТИЦ на моих сайтах? ;)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий