Немного об удалении файлов и папок

Часто возникает необходимость удалить что-то на сервере. Для удаления одного объекта можно воспользоваться функцией rm, а вот для массового удаления - все объекты для удаления сначала нужно найти.

Начнем с простого - удаление просто файла с подтверждением:

rm /path/to/file

После вызова данной команды система выдаст вам запрос на подтверждение удаления. Чтобы подтверждение не спрашивалось, необходимо к команде добавить ключ -f:

rm -f /path/to/file

Если удалить нужно не файл, а каталог, то необходимо для начала убедиться, что он пустой и тогда удаление будет аналогично файлу. Но если каталог будет не пустой - данная команда выдаст ошибку. Чтобы ошибки не было, удалять нужно рекурсивно, т.е. вместе со всем содержимым:

rm -rf /path/to/folder

В результате, все папка, вместе со всем содержимым, будет успешно удалена.

Но что, если нужно удалять не всю папку, а только выборочные файлы в ней, или выборочные подразделы? В данном случае поможет команда "find":

Удаляем все файлы (ключ -type f ) с маской имени (упоминанием в имени) "*some_text*" в каталоге ./folder/:

find ./folder/* -type f -name "*some_text*" -delete

Удаляем все пустые каталоги по маске (просто * = все):

find ./folder/* -type d -name "*" -empty -delete

Удалить все файлы, модифицированные более суток назад, по маске:

find ./folder/* -type f -mtime 1 -name "*some_text*" -delete

Другие варианты поиска, можно посмотреть в консоли, в справке функции поиска:

man find
Кількість показів: 2287
30.11.2017

Повернення до списку

Если вам была полезна статья можете отблагодарить автора: