ruvasik
@ruvasik
https://www.bryce.ru

Какие есть подводные камни в такой bash инструкции?

Выполняется на Ubuntu:
PROJECT_PATH="/var/www/..."
....
find $PROJECT_PATH -type d -mtime -3 -mtime +1 | head -n -1 | xargs rm -r


Что может произойти, если find ничего не найдет – он передаст пустой аргумент на rm?
Может ли такой скрипт удалить папки выше себя (если, например, $PROJECT_PATH попадет под условия find?)?

Как максимально обезопасить такой скрипт от удаления лишнего?
  • Вопрос задан
  • 174 просмотра
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
замените "xargs rm -r" на "xargs echo rm -r" и проверьте.

Какая стоит задача?

Пока что задача стоит странно:
Удалять все каталоги в /var/www, которые старше 1 дня, но моложе 3 дней, оставляя при этом один рандомный каталог (поскольку сортировка вывода не стоит, и какой именно каталог будет пропущен неявно будет определяться по тому, что первым найдет find)?

Если просто удалить все, что старше 1 дня, то может вот так:
PROJECT_PATH="/var/www/project1"
find $PROJECT_PATH -mtime +1 -delete
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы