Удаляем папки в Linux: 5 способов, о которых вы не знали

Удаляем папки в Linux: 5 способов, о которых вы не знали

Вы когда-нибудь сталкивались с упрямой папкой в Linux, которая не хочет удаляться? Или, может, вам нужно быстро очистить десятки пустых каталогов? Файловый менеджер тут бессилен.

Есть способ лучше. Командная строка — ваш верный союзник в борьбе с цифровым хламом. Она дает вам скорость и полный контроль, недоступные в графическом интерфейсе.

В этом материале мы не будем рассказывать про банальный `rm -rf`. Вы узнаете гораздо больше.

Мы покажем, как точечно удалять только пустые папки, не трогая остальные файлы. Вы научитесь стирать целые группы каталогов по маске имени одной командой. Узнаете, как заставить систему показывать каждый удаляемый файл для полного контроля.

А для самых параноидальных — раскроем секрет безвозвратного удаления, после которого восстановить данные будет невозможно.

Готовы превратиться в настоящего повелителя файловой системы? Эти приемы сэкономят вам часы рутины и откроют новые горизонты работы в терминале.

Впереди — только практичные и работающие команды. Поехали!


В операционной системе Linux можно выполнить большинство действий через терминал. Удаление каталога Linux - это достаточно простое действие, которое можно выполнить просто открыв файловый менеджер.

Однако в терминале это делается немного быстрее и вы получаете полный контроль над ситуацией. Например, можете выбрать только пустые папки или удалить несколько папок с одним названием. В этой статье мы рассмотрим как удалить каталог Linux через терминал.

Как удалить каталог Linux

Существует несколько команд, которые вы можете использовать для удаления каталога Linux. Рассмотрим их все более подробно. Самый очевидный вариант - это утилита rmdir. Но с помощью нее можно удалять только пустые папки:

rmdir моя_папка
Удаляем папки в Linux: 5 способов, о которых вы не знали

Другая команда, которую можно применить - это rm. Она предназначена для удаления файлов Linux, но может использоваться и для папок если ей передать опцию рекурсивного удаления -r:

rm -R моя_папка
Удаляем папки в Linux: 5 способов, о которых вы не знали
Удаляем папки в Linux: 5 способов, о которых вы не знали

Такая команда уже позволяет удалить непустой каталог Linux. Но, можно по-другому, например, если вы хотите вывести информацию о файлах, которые удаляются:

rm -Rfv моя_папка
Удаляем папки в Linux: 5 способов, о которых вы не знали

Команда -R включает рекурсивное удаление всех подпапок и файлов в них, -f - разрешает удалять файлы без запроса, а -v показывает имена удаляемых файлов. В этих примерах я предполагаю что папка которую нужно удалить находится в текущей рабочей папке, например, домашней. Но это необязательно, вы можете указать полный путь к ней начиная от корня файловой системы:

rm -Rfv /var/www/public_html

Читайте подробнее про пути в файловой системе в статье путь к файлу Linux. Теперь вы знаете как удалить непустой каталог в консоли linux, далее усложним задачу, будем удалять папки, которые содержат определенные слова в своем имени:

find . -type d -name "моя_папка" -exec rm -rf {} ;
Удаляем папки в Linux: 5 способов, о которых вы не знали

Подробнее про команду find смотрите в отдельной статье. Если кратко, то -type d указывает, что мы ищем только папки, а параметром -name задаем имя нужных папок. Затем с помощью параметра -exec мы выполняем команду удаления. Таким же образом можно удалить только пустые папки, например, в домашней папке:

find ~/ -empty -type d -delete

Как видите, в find необязательно выполнять отдельную команду, утилита тоже умеет удалять. Вместо домашней папки, можно указать любой нужный вам путь:

find /var/www/public_html/ -empty -type d -delete

Перед удалением вы можете подсчитать количество пустых папок:

find /var/www/public_html/ -empty -type d | wc -l
Удаляем папки в Linux: 5 способов, о которых вы не знали

Другой способ удалить папку linux с помощью find - использовать в дополнение утилиту xargs. Она позволяет подставить аргументы в нужное место. Например:

find ~/ -type f -empty -print0 | xargs -0 -I {} /bin/rm "{}"

Опция -print0 выводит полный путь к найденному файлу в стандартный вывод, а затем мы передаем его команде xargs. Опция -0 указывает, что нужно считать символом завершения строки , а -I - что нужно использовать команду из стандартного ввода.

Если вы хотите полностью удалить папку Linux, так, чтобы ее невозможно было восстановить, то можно использовать утилиту wipe. Она не поставляется по умолчанию, но вы можете ее достаточно просто установить:

sudo apt install wipe

Теперь для удаления каталога Linux используйте такую команду:

wipe -rfi ~/моя_папка/*

Опция -r указывает, что нужно удалять рекурсивно все под папки, -f - включает автоматическое удаление, без запроса пользователя, а -i показывает прогресс удаления. Так вы можете удалить все файлы в папке linux без возможности их восстановления поскольку все место на диске где они были будет несколько раз затерто.

Выводы

В этой статье мы рассмотрели как удалить каталог linux, а также как удалить все файлы в папке linux без возможности их будущего восстановления. Как видите, это очень просто, достаточно набрать несколько команд в терминале. Если у вас остались вопросы, спрашивайте в комментариях!

Оставить комментарий


Кликните на изображение чтобы обновить код, если он неразборчив