Как удалить каталог в linux через терминал

Обновлено: 04.07.2024

Рассказываем о том, как в Linux можно решить такую тривиальную на первый взгляд задачу, как удаление файлов. Это можно сделать, используя команды в терминале и графический интерфейс.

Удаляем папки с помощью графического интерфейса

Несмотря на то, что в Linux преобладает управление с помощью терминала, никто не запрещает использовать графический интерфейс для решения утилитарных задач, пока вы не готовы к постоянной работе с командной строкой.

По возможности все-таки используйте терминал. Со временем вы поймете, что так намного быстрее и удобнее.

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

  • Открываем встроенный в ваш дистрибутив файловый менеджер. Чаще всего он так и называется — «Файлы».
В Ubuntu, например, файловый менеджер закреплен в боковой панели. В оболочках типа Gnome 3 сначала нужно открыть список установленных программ В Ubuntu, например, файловый менеджер закреплен в боковой панели. В оболочках типа Gnome 3 сначала нужно открыть список установленных программ
  • Ищем файл, который нужно стереть и кликаем по нему правой кнопкой мыши.
  • Затем кликаем по строчке «Переместись в корзину».
Как видно на скриншоте, вместо контекстного меню можно использовать клавишу Delete Как видно на скриншоте, вместо контекстного меню можно использовать клавишу Delete
  • Затем ищем корзину в файловом менеджере или на рабочем столе и кликаем по ней правой кнопкой мыши.
  • Нажимаем на кнопку «Очистить корзину».
Эта кнопка безвозвратно удалит все файлы, хранящиеся в корзине Эта кнопка безвозвратно удалит все файлы, хранящиеся в корзине
  • На этом все. Как видите, все работает так же, как в Windows.

Удаляем папки и директории с помощью терминала

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

Перед тем как удалить папку, лучше зайти в родительскую директорию. То есть ту, где находится папка, которую мы хотим стереть с компьютера. Для этого воспользуемся командой cd .

  • Например, введем cd Downloads/folder , чтобы перейти в папку folder, которая лежит в директории «Загрузки».
Это команда для примера. Естественно, ваш путь может быть другим Это команда для примера. Естественно, ваш путь может быть другим
  • Затем с помощью команды ls посмотрим, какие папки лежат внутри. Теперь мы можем взаимодействовать с папками напрямую, не вводя весь путь в каждую команду.
Папки всегда подсвечиваются другим цветом. В моем примере видим папку fold-test. Ее и будем удалять Папки всегда подсвечиваются другим цветом. В моем примере видим папку fold-test. Ее и будем удалять

Теперь мы сократили себе работу, зайдя в нужную папку и отобразили весь список папок, которые можно стереть.

Используем команду rmdir для удаления папки

Самый простой способ стереть папку — использовать команду rmdir . Это производная от команды rm , отвечающая исключительно за взаимодействие с папками, а не файлами. Напоминаю, что оригинальная команда rm взаимодействует именно с файлами (хотя и там есть свои нюансы).

Чисто для примера удалим нашу папку fold-test командой rmdir fold-test .

Используем команду rm для удаления файлов и папок

Я уже написал выше, что эта команда отвечает за удаление файлов, но если воспользоваться тегом -R , можно стереть и папку. Этот тег запускает рекурсивный процесс поиска вложений и их удаления до тех пор, пока не будет вычищена целая директория.

В моем примере можете заметить команду mkdir. Это команда для создания папки — можете взять на заметку В моем примере можете заметить команду mkdir. Это команда для создания папки — можете взять на заметку

Тег -R можно слегка усовершенствовать, добавив ему еще одно свойство, а именно функцию отображения всех выполняемых действий. Если вместо -R ввести -Rfv , то команда не просто молча удалит директорию, а сообщит о том, какие файлы и папки были стерты из системы.

Вот уже другая команда для отображения дополнительной информации в ходе удаления папок Вот уже другая команда для отображения дополнительной информации в ходе удаления папок Если бы в папке находились файлы, они бы тоже удалились и отобразились в этом списке Если бы в папке находились файлы, они бы тоже удалились и отобразились в этом списке

Используем команду find

Также в каждом дистрибутиве Linux есть команда поиска файлов и папок. Суть в том, что эту команду можно дополнить несколькими аргументами. Например, указать, что нужно искать исключительно папки с определенным названием, а также указать действие, которое нужно совершить с находкой. Вот пример такой команды:

find . -type d -name название каталога в двойных кавычках -exec rm -rf <> \;

С помощью find запускаем поиск. Ставим точку перед тем, как начать указывать аргументы. Потом указываем тип информации, которую нужно искать. В нашем случае это:

  • Директория, тег d .
  • Потом идет тег -name — он ставится перед названием папки, которую ищем. Название обязательно в двойных кавычках.
  • Потом сообщаем команде, что после окончания поиска, нужно запустить другую команду, тег -exec .
  • Ну и саму команду удаления, которая будет выглядеть так: rm -rf <> \;

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

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

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

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

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


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



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

rm -Rfv моя_папка

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

rm -Rfv /var/www/public_html

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

find . -type d -name "моя_папка" -exec rm -rf <> \;


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

/ -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 с помощью find - использовать в дополнение утилиту xargs. Она позволяет подставить аргументы в нужное место. Например:

/ -type f -empty -print0 | xargs -0 -I <> /bin/rm "<>"

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

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

sudo apt install wipe

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

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

Выводы

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

Операционная система Linux позволяет выполнять практически любые действия при помощи терминала или консоли. Более того, при администрировании Linux-серверов работа с терминалом – это основной способ управления системой. Поэтому навыки работы с консолью абсолютно необходимы, если вы хотите действительно научиться работать с Linux.

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

Как удалить пустую папку в Linux через терминал

Если вам нужно удалить пустую папку в Linux через терминал, то для этого проще всего использовать команду rmdir. Данная команда используется для удаления пустых папок из файловой системы Linux. Каталоги с файлами или другими каталогами данная команда не удаляет.

Синтаксис команды rmdir выглядит следующим образом:

Разберем доступные параметры подробней:

Для того чтобы просто удалить пустую папку нужно ввести « rmdir foldername ». Где « foldername » это название удаляемого объекта. При желании можно удалить сразу несколько папок, для этого достаточно перечислить их через пробел.

удаление пустых папок в Linux

Если необходимо удалить каталог, в котором есть другие каталоги (без файлов), то можно воспользоваться параметром « -p ». Для этого нужно ввести « rmdir -p » и указать полный путь. Например, если в каталоге folder1 есть другой каталог folder2, то мы можем удалить их сразу одной командой « rmdir -p folder1/folder2 ».

удаление дерева пустых папок в Linux

При использовании параметра « -v » в консоль будет выведена подробная информация о процессе удаления каталогов.

удаление пустых папок с выводом информации

А при использовании параметра « ignore-fail-on-non-empty » команда будет игнорировать ошибки, которые будут возникать при попытке удаления непустых каталогов.

удаление пустых папок с игнорированием ошибок

Нужно отметить, что также существует команда « mkdir », которая предназначена для создания папок и обладает точно таким же синтаксисом.

создание папок в Linux

С ее помощью вы можете создать папки по одной или целым деревом (при использовании параметра « -p »).

Как удалить папку с содержимым (с файлами) в Linux

Если нужно удалить папку с каким-то содержимым, например, с файлами, то тут уже нужно использовать команду « rm ». Данная Linux команда предназначена для удаления файлов, но с ее помощью можно удалять и каталоги, если использовать параметр «-r», который включает рекурсивное удаление.

Синтаксис команды rm выглядит следующим образом:

Разберем основные параметры команды rm:

Для удаления папок с файлами нам нужно использовать параметр « -r ». Введите « rm -r » и укажите название папки, которую нужно удалить. Например, если у нас есть каталог folder1 с какими-то файлами, то мы можем ее удалить, введя команду « rm -r folder1 »

удаление папок с файлами в Linux

Если необходимо, чтобы удаление папок сопровождалось запросом, то вместе с параметром « -r » можно использовать параметр « -i ». В этом случае каждая операция, которую будет выполнять команда, будет требовать разрешения пользователя. При этом команда для удаления папки folder1 будет выглядеть как «rm -ri folder1 ».

удаление папок с файлами и запросом к пользователю

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

удаление папок с выводом информации

Например, вы можете указать « rm -rv /home/aleks/folder1 » для того, чтобы удалить папку folder1 с выводом подробной информации.

Как удалить все файлы в папке Linux

В некоторых случаях может возникнуть необходимость удалить все файлы в папке при этом не удаляя саму папку. Для решения такой задачи можно использовать вот такую команду « rm -rf /path/to/directory/* ». Данная команда удалит все файлы и папки (рекурсивно удалит все содержимое) по указанному пути.

удалит все файлы и папки

Если же нужно удалить все файлы в папке, но оставить вложенные папки, то это можно сделать командой « rm -f /path/to/directory/* ».

удалить все файлы в папке

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

Для этого подойдет команда « rm -rf foldername && mkdir foldername ».

Поиск и удаление с помощью команды find

Если нужно не просто удалить какую-то определенную папку с файлами, а сначала найти ее, то тут поможет Linux-команда find. Данная команда является мощным инструментом для поиска файлов и выполнения с ними определенных операций. Среди прочего ее можно использовать для поиска и удаления файлов.

Например, чтобы найти и удалить пустые папки в домашнем каталоге можно выполнить команду:

Данная команда использует следующие параметры:

поиск и удаление пустых папок

Другой пример – поиск и удаление папок с определенным названием. Так, чтобы удалить папки, содержащие в названии слово « test » можно выполнить следующую команду:

Данная команда содержит следующие параметры:

поиск и удаление папок с определенным названием

Указанные выше примеры использования Linux-команды find – лишь часть ее возможностей. Рассмотреть все варианты ее использования в рамках этой статьи будет невозможно.


Команды rm и rmdir удаляют файлы и каталоги в Linux, macOS и других Unix-подобных операционных системах. Они похожи на команды del и deltree в Windows и DOS. Эти команды очень мощные и имеют довольно много опций.

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

Как удалить файлы с помощью rm

Если файл не находится в текущем рабочем каталоге, укажите путь к местоположению файла.

Вы можете передать более одного имени файла в rm. При этом удаляются все указанные файлы.

Подстановочные знаки могут использоваться для выбора групп файлов, которые будут удалены. Знак * представляет несколько символов, а символ ? представляет один символ. Эта команда удалит все файлы изображений png в текущем рабочем каталоге.

Эта команда удалит все файлы с одним символьным расширением. Например, это удалит File.1 и File.2, но не File.12.

Если файл защищен от записи, вам будет предложено удалить файл. Вы должны ответить с помощью y или n и нажать «Enter».


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

Опция -f (сила) противоположна интерактивной. Он не запрашивает подтверждение, даже если файлы защищены от записи.

Как удалить каталоги с помощью rm

Чтобы удалить пустой каталог, используйте опцию -d (directory). Вы можете использовать подстановочные знаки (* и ?) В именах каталогов так же, как и в именах файлов.

Предоставление более одного имени каталога удаляет все указанные пустые каталоги.

Чтобы удалить не пустые каталоги, используйте параметр -r (рекурсивный). Чтобы было ясно, это удаляет каталоги и все файлы и подкаталоги, содержащиеся в них.

Если каталог или файл защищен от записи, вам будет предложено подтвердить удаление. Чтобы удалить не пустые каталоги и подавить эти приглашения, используйте вместе параметры -r (рекурсивный) и -f (принудительный).

Используйте apt-get для установки этого пакета в вашу систему, если вы используете Ubuntu или другой дистрибутив на основе Debian. В других дистрибутивах Linux используйте инструмент управления пакетами вашего дистрибутива Linux.

Выполнение команды tree дает простую для понимания диаграмму структуры каталогов и файлов под каталогом, из которого она запускается.


Вы также можете указать путь к команде tree чтобы он запускал дерево из другого каталога в файловой системе.

Команда rm также имеет параметры --one-file-system , --no-preserve-root , --preserve-root , но они рекомендуются только для опытных пользователей. Если вы что-то не так, вы можете случайно удалить все ваши системные файлы.

Как удалить каталоги с помощью rmdir

Есть еще одна команда rmdir , которую вы можете использовать для удаления каталогов. Разница между rm и rmdir том, что rmdir может удалять только пустые каталоги. Он никогда не удалит файлы.

Удалите один каталог в текущем каталоге, передав его имя в rmdir :

Удалите несколько каталогов, передав список имен в rmdir :

Удалите каталог не в текущем каталоге, указав полный путь к этому каталогу:


В следующем примере две папки были переданы в rmdir , это work/reports и work/quotes. Параметр --ignore-fail-on-non-empty включен в команду. В папке work/reports находятся файлы, поэтому rmdir не может удалить ее. Опция --ignore-fail-on-non-empty заставляет rmdir игнорировать ошибку и переходить к следующей папке, которую он должен обработать, это work/quotes. Это пустая папка, и rmdir удаляет ее.

Эта команда использовалась.


Вы можете использовать опцию -p (parent), чтобы удалить каталог, а также удалить его родительские каталоги. Этот прием работает, потому что rmdir начинается с целевого каталога, а затем возвращается к родительскому. Теперь этот каталог должен быть пустым, поэтому он может быть удален rmdir, и процесс повторяет шаг назад по пути, предоставленному rmdir.

В следующем примере команда, переданная в rmdir:


Каталоги invoices и work удаляются по запросу.

Используете ли вы Bash или любую другую оболочку? Linux предоставляет гибкие и мощные команды для удаления каталогов и файлов прямо из командной строки терминала. Некоторые люди предпочитают иметь рабочий процесс, который вращается вокруг терминала. У других может не быть выбора в этом вопросе. Они могут работать на серверах без установленного графического интерфейса или в удаленном сеансе в автономной системе, такой как Raspberry Pi. Эти команды идеально подходят для этой группы людей.

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

Читайте также: