Удалить все подкаталоги linux

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

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

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

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

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

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

rmdir [-p] [-v | --verbose] [--ignore-fail-on-non-empty] directories …

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

rmdir --help Получение справки о команде rmdir rmdir -p Удаление всех пустых папок по всему указанному пути. rmdir -v или rmdir --verbose Вывод подробной информации о всех удаляемых объектах. rmdir --ignore-fail-on-non-empty Игнорирование ошибок, которые возникают при попытке удаления не пустых папок.

Для того чтобы просто удалить пустую папку нужно ввести « 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», который включает рекурсивное удаление.

Читайте также:  Rdp client linux remmina

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

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

-f, --force Игнорировать несуществующие файлы, ничего не спрашивать. -i Спрашивать перед каждым удалением. -I Спрашивать перед удалением более чем 3 файлов и при использовании рекурсивного удаления. -r, -R, --recursive Удаление каталогов и их содержимого рекурсивно. -v, --verbose Вывод информации об удаляемых каталогах. --help Вывод справочной информации о команде. --version Вывод информации о версии.

Для удаления папок с файлами нам нужно использовать параметр « -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. Данная команда является мощным инструментом для поиска файлов и выполнения с ними определенных операций. Среди прочего ее можно использовать для поиска и удаления файлов.

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

find ~/ -empty -type d -delete

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

-empty Поиск пустых объектов. -type d Поиск каталогов. -delete Удаление найденных объектов.

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

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

find . -type d -name "*test*" -exec rm -rf <> \;

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

-type d Поиск каталогов. -name Поиск объектов с определенным именем. -exec Выполнение команды.

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

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

Читайте также:  What is package repository in linux

Источник

Примеры команды RM Linux

rm означает «remove», как следует из названия, команда rm используется для удаления файлов и каталогов в UNIX-подобной операционной системе. Если вы новичок в Linux, вы должны быть очень осторожны при запуске команды rm, потому что, как только вы удалите файлы, вы не сможете восстановить содержимое файлов и каталогов. Хотя есть некоторые инструменты и команды, с помощью которых можно восстановить удаленные файлы, но для этого вам нужны экспертные навыки.

В этом посте я продемонстрирую 10 примеров команд Linux rm. Ниже приведен основной синтаксис команды rm.

Удаление файла

Давайте удалим файл с именем «linux.log»

Удаление нескольких файлов одновременно.

Давайте предположим, что я хочу удалить четыре текстовых файла одновременно. Используйте приведенный ниже синтаксис.

$ rm file1.txt file2.txt file3.txt file4.txt

Интерактивное удаление файлов

Параметр ‘-i‘ спрашивает разрешение перед удалением, как показано ниже.

$ rm -i linuxstufff.log rm: remove regular file ‘linuxstufff.log’? y

Удаление пустой директории

Используйте опцию «-d» для удаления пустой папки.

$ ls -R appdata/ appdata/: $ rm -d appdata/

Вы также можете использовать команду ‘rmdir‘ для удаления пустых папок.

$ ls -R appdata/ appdata/: $ rmdir appdata

Рекурсивное удаление директорий

Команде rm вместе параметром ‘-r‘ рекурсивно удалит все файлы и подкаталогов в родительской директории.

$ ls -lR dbstore/ dbstore/: total 0 -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 26 23:59 file1.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 26 23:59 file2.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 26 23:59 file3.log drwxrwxr-x. 2 mordeniuss mordeniuss 6 Mar 26 23:59 service dbstore/service: total 0 $ rm -r dbstore/

Удаление файлов и подкаталогов интерактивно

Используйте опцию ‘-ri‘ в команде rm для интерактивного удаления файлов и подкаталогов.

$ ls -lR dbstore/ dbstore/: total 0 -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 00:02 file1.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 00:02 file2.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 00:02 file3.log drwxrwxr-x. 2 mordeniuss mordeniuss 6 Mar 27 00:02 service dbstore/service: total 0 [mordeniuss@cloud ~]$ rm -ri dbstore/ rm: descend into directory ‘dbstore/’? y rm: remove regular empty file ‘dbstore/file1.log’? y rm: remove regular empty file ‘dbstore/file2.log’? y rm: remove regular empty file ‘dbstore/file3.log’? y rm: remove directory ‘dbstore/service’? y rm: remove directory ‘dbstore/’? y

Принудительное удаление файлов

Параметр ‘-f‘ в команде rm принудительно удаляет файлы независимо от их прав доступа, а также игнорирует несуществующие файлы.

Давайте удалим защищенный от записи файл ‘tech.txt’

$ ls -l tech.txt -r--r--r--. 1 mordeniuss mordeniuss 0 Mar 27 00:23 tech.txt $ rm tech.txt rm: remove write-protected regular empty file ‘tech.txt’?

Как мы видим выше, когда мы пытаемся удалить файл, защищенный от записи, с помощью команды rm без опции ‘-f‘, выходит предупреждение.

Читайте также:  Болят глаза от линукса

Теперь попробуйте удалить файл, используя опцию ‘-f‘.

Также попробуем удалить несуществующий файл.

Примечание: опция -f не будет работать для каталогов, защищенных от записи.

Давайте рассмотрим пример, каталог ‘home/home/mordeniuss/location/protected‘ защищен от записи, а файл ‘db_stuff‘ внутри этого каталога нет.

$ ls -ld /home/mordeniuss/location/ drwxrwxr-x. 2 root root 29 Mar 27 00:43 /home/mordeniuss/location/ $ ls -l /home/mordeniuss/location/db_stuff -rw-rw-r--. 1 mordeniuss mordeniuss 17 Mar 27 00:43 /home/mordeniuss/location/db_stuff $ rm -f /home/mordeniuss/location/db_stuff rm: cannot remove ‘/home/mordeniuss/location/db_stuff’: Permission denied

Проверка при удалении более 3 файлов или рекурсивном удаление

Параметр ‘-I‘ в команде rm перед удалением более трех файлов или рекурсивным удалением запрашивает подтверждение.

Предположим, я хочу удалить все файлы журнала, которые начинаются с имени «app» в каталоге «linux_store».

$ ls -l linux_store/ total 0 -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:07 app1.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:07 app2.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:07 app3.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:07 app4.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:07 app5.log $ rm -I linux_store/app* rm: remove 5 arguments? y

Регулярные выражения в команде rm

Мы можем использовать регулярные выражения в команде rm, некоторые примеры показаны ниже:

Давайте удалим 5 файлов журнала, начиная с log1 до log5 в каталоге ‘linux_store‘.

$ pwd /home/mordeniuss/linux_store $ ll total 0 -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:15 log1.txt -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:15 log2.txt -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:15 log3.txt -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:15 log4.txt -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:15 log5.txt -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:15 log6.txt . $rm -f log.txt

Удалим все файлы в данной директории, которые заканчиваются на ‘.txt

Удалим все файлы в текущем каталоге, которые имеют три символа в расширение.

Удаление большого количества файлов

Если вы пытаетесь удалить большое количество файлов с помощью команды rm, вы получите сообщение об ошибке
Argument list too long‘ (Список аргументов слишком длинный)

В приведенном ниже примере я пытаюсь удалить все файлы (около 300001) каталога ‘/home/mordeniuss/linux_store‘ сразу.

$ ls -l | wc -l 300001 $ rm *.log -bash: /bin/rm: Argument list too long

Чтобы решить эту проблему, используйте команду:

$ find ~/linux_store/ -type f -exec rm <> \;

Удаление файлов, начинающихся с дефиса (-)

Давайте предположим, что у нас есть файл с именем ‘-store‘ в нашем текущем каталоге, и мы хотим удалить этот файл.

$ ll total 0 -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 02:05 -store $ rm -store rm: invalid option -- 's' Try 'rm --help' for more information. [mordeniuss@cloud linux_store]$

Удалить этот файл можно с помощью команд ниже.

$ rm -- \ -store ИЛИ $ rm ./\ -store 

Источник

Оцените статью
Adblock
detector