- Как удалить каталог в Linux
- Подготовка
- Удаление каталогов с помощью rmdir
- Удаление каталогов с помощью rm
- Удаление каталогов с помощью find
- Удаление всех пустых каталогов
- / bin / rm: слишком длинный список аргументов
- Выводы
- Как принудительно удалить папку в Linux
- Как принудительно удалить папку в Linux
- Заключение
- Похожие записи:
- Как удалять файлы и директории в Linux
- Как удалить файл в терминале Linux
- Как удалить несколько файлов
- Как удалить файлы в интерактивном режиме
- Как принудительно удалить файлы
- Как удалить пустые каталоги
- Как в Linux удалить директорию с файлами
- Как рекурсивно удалить несколько каталогов
- Как удалить папку в терминале Linux принудительно и рекурсивно
- Заключение
Как удалить каталог в Linux
Есть несколько различных способов удаления каталогов в системах Linux. Если вы используете файловый менеджер рабочего стола, такой как Gnome’s Files или KDE’s Dolphin, вы можете удалять файлы и каталоги с помощью графического пользовательского интерфейса менеджера. Но если вы работаете на автономном сервере или хотите удалить сразу несколько каталогов, лучшим вариантом является удаление каталогов (папок) из командной строки.
В этой статье мы объясним, как удалять каталоги в Linux с помощью команд rmdir , rm и find .
Подготовка
При удалении каталога с помощью файлового менеджера рабочего стола каталог фактически перемещается в корзину и может быть легко восстановлен.
Будьте особенно осторожны при удалении файлов или каталогов из командной строки, поскольку после удаления каталога с помощью команд, описанных в этой статье, его невозможно полностью восстановить.
В большинстве файловых систем Linux для удаления каталога требуется разрешение на запись в каталог и его содержимое. В противном случае вы получите ошибку «Операция запрещена».
Имена каталогов с пробелами должны быть экранированы обратной косой чертой ( / ).
Удаление каталогов с помощью rmdir
rmdir — это утилита командной строки для удаления пустых каталогов. Это полезно, когда вы хотите удалить каталог только в том случае, если он пуст, без необходимости проверять, пуст каталог или нет.
Чтобы удалить каталог с помощью rmdir , введите команду, а затем имя каталога, который вы хотите удалить. Например, чтобы удалить каталог с именем dir1 , введите:
Если каталог не пустой, вы получите следующую ошибку:
rmdir: failed to remove 'dir1': No such file or directory
В этом случае вам нужно будет использовать команду rm или вручную удалить содержимое каталога, прежде чем вы сможете его удалить.
Удаление каталогов с помощью rm
rm — это утилита командной строки для удаления файлов и каталогов. В отличие от rmdir команда rm может удалять как пустые, так и непустые каталоги.
По умолчанию при использовании без каких-либо параметров rm не удаляет каталоги. Чтобы удалить пустой каталог, используйте параметр -d ( —dir ), а для удаления непустого каталога и всего его содержимого используйте параметр -r ( —recursive или -R ).
Например, чтобы удалить каталог с именем dir1 вместе со всем его содержимым, введите:
Если каталог или файл в каталоге защищен от записи, вам будет предложено подтвердить удаление. Чтобы удалить каталог без запроса, используйте параметр -f :
Чтобы удалить сразу несколько каталогов, вызовите команду rm , после которой укажите имена каталогов, разделенные пробелом. Приведенная ниже команда удалит все перечисленные каталоги и их содержимое:
Параметр -i указывает rm запрашивать подтверждение удаления каждого подкаталога и файла. Если в каталоге много файлов, это может немного раздражать, поэтому вы можете рассмотреть возможность использования опции -I которая предложит вам только один раз, прежде чем продолжить удаление.
Чтобы удалить каталог, введите y и нажмите Enter .
rm: remove 1 argument recursively? y
Вы также можете использовать обычные расширения для сопоставления и удаления нескольких каталогов. Например, чтобы удалить все каталоги первого уровня в текущем каталоге, который заканчивается на _bak , вы должны использовать следующую команду:
Использование регулярных расширений при удалении каталогов может быть рискованным. Рекомендуется сначала перечислить каталоги с помощью команды ls чтобы вы могли видеть, какие каталоги будут удалены, прежде чем запускать команду rm .
Удаление каталогов с помощью find
find — это утилита командной строки, которая позволяет вам искать файлы и каталоги на основе заданного выражения и выполнять действие с каждым совпадающим файлом или каталогом.
Наиболее распространенный сценарий — использовать команду find для удаления каталогов на основе шаблона. Например, чтобы удалить все каталоги, которые заканчиваются на _cache в текущем рабочем каталоге, вы должны запустить:
find . -type d -name '*_cache' -exec rm -r <> +
Давайте проанализируем команду выше:
- /dir — рекурсивный поиск в текущем рабочем каталоге ( . ).
- -type d — ограничивает поиск каталогами.
- -name ‘*_cache’ — искать только каталоги, заканчивающиеся на _cache
- -exec — выполняет внешнюю команду с необязательными аргументами, в данном случае это rm -r .
- <> + — добавляет найденные файлы в конец команды rm .
Удаление всех пустых каталогов
Чтобы удалить все пустые каталоги в дереве каталогов, выполните:
find /dir -type d -empty -delete
Вот объяснение используемых опций:
- /dir — рекурсивный поиск в каталоге /dir .
- -type d — ограничивает поиск каталогами.
- -empty — ограничивает поиск только пустыми каталогами.
- -delete — удаляет все найденные пустые каталоги в поддереве. -delete может удалять только пустые каталоги.
Используйте параметр -delete с особой осторожностью. Командная строка поиска оценивается как выражение, и если вы сначала добавите параметр -delete , команда удалит все, что находится ниже указанных вами начальных точек.
Всегда сначала проверяйте команду без опции -delete и используйте -delete в качестве последней опции.
/ bin / rm: слишком длинный список аргументов
Это сообщение об ошибке появляется, когда вы используете команду rm для удаления каталога, содержащего огромное количество файлов. Это происходит из-за того, что количество файлов превышает системное ограничение на размер аргумента командной строки.
Есть несколько разных решений этой проблемы. Например, вы можете cd в каталог и вручную или с помощью цикла для удаления Подкаталогов один за другим.
Самое простое решение — сначала удалить все файлы в каталоге с помощью команды find а затем удалить каталог:
find /dir -type f -delete && rm -r /dir
Выводы
С помощью rm и find вы можете быстро и эффективно удалять каталоги по различным критериям.
Удаление каталогов — простой и легкий процесс, но вы должны быть осторожны, чтобы не удалить важные данные.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Как принудительно удалить папку в Linux
Иногда, когда вы пытаетесь удалить папку в Linux, вы можете получить сообщение об ошибке ‘Permission Denied’. Но вам все равно может понадобиться удалить папку. Поэтому вам нужно принудительно удалить папку. В этой статье мы узнаем, как принудительно удалить каталог в Linux.
Как принудительно удалить папку в Linux
Как правило, вы получаете эту ошибку, когда пользователь Linux, под которым вы вошли в систему, не имеет права записи ‘w’ для изменения содержимого каталога. Хотя разрешение на запись требуется для записи содержимого в каталог, оно также необходимо для удаления его содержимого. Если вы находитесь в каталоге, где у вас есть разрешение write(w), вы можете легко удалить его файлы независимо от их прав доступа.
Иногда вы также можете получить эту ошибку, если вы не являетесь владельцем этого каталога. Мы рассмотрим, как решить эти две проблемы.
Допустим, у вас есть папка /home/data, которую вы не можете удалить.
В результате получаем сообщение
rm: cannot remove 'data': Permission denied
Сначала выполните команду ls для этой папки, чтобы проверить, есть ли у вас разрешение на запись или нет.
drwxr-xr-x 2 root root 4096 May 1 13:45
Как вы можете видеть выше, только пользователь root имеет право ‘w’, а другие пользователи — нет. Поэтому вы не сможете удалить папку, если вы не вошли в систему как пользователь root.
Поэтому вам нужно изменить разрешение на папку для вашего пользователя так, чтобы вы получили разрешение на ее удаление. Это можно сделать с помощью команды chmod. Число 777 означает разрешение на чтение-запись-исполнение (rwx) для всех пользователей. Вы можете изменить его в соответствии с вашими требованиями.
Теперь выполните команду ls для проверки разрешений.
drwxrwxrwx 2 root root 4096 1 May 13:45
Вы увидите, что разрешения каталога drwxrwxrwxrwx включают разрешение ‘w’ для всех пользователей. Теперь вы должны иметь возможность удалить каталог.
Если вы все еще не можете удалить нужный каталог, используйте команду chown, чтобы изменить права собственности на каталог. Допустим, вы вошли в систему как пользователь ubuntu. Как вы можете видеть выше, владельцем каталога /home/data является root. Вот команда для изменения владельца на пользователя ubuntu.
hown ubuntu:ubuntu /home/ubuntu
Теперь снова проверьте права доступа к каталогу, чтобы узнать, изменился ли его владелец. Он изменился на ubuntu.
drwxrwxrwx 2 ubuntu ubuntu 4096 May 1 13:45
Теперь вы можете удалить каталог с помощью команды rm -r.
Заключение
В этой статье мы узнали, как принудительно удалить каталог. Вы можете использовать эти шаги для удаления каталогов, при попытке удаления которых вы получаете сообщение об ошибке «разрешение отклонено». Конечно, следует быть осторожным при изменении прав собственности и разрешений каталога, так как это может повлиять на другие приложения, которые обращаются к нему. Поэтому выполняйте описанные выше действия только в том случае, если это действительно необходимо.
Похожие записи:
Как удалять файлы и директории в Linux
Visitors have accessed this post 50169 times.
В некоторых случаях может потребоваться удалить ненужные директории и файлы, чтобы освободить место на жестком диске. Рассказываем, как это сделать.
Для удаления файлов используется команда rm. Предупреждение: удаление файлов и каталогов в Linux с помощью команды rm является необратимым. Поэтому следует проявлять особую осторожность при ее применении.
Как удалить файл в терминале Linux
Чтобы в Linux удалить файл с помощью команды rm, используйте следующий синтаксис:
$ rm filename
Например, мы создадим текстовый файл file1.txt с помощью команды touch. Для удаления файла запустите:
$ rm file1.txt
Вывод
Как удалить несколько файлов
Чтобы удалить несколько файлов с помощью команды rm, используйте синтаксис:
$ rm file1 file2 file3
Создадим 3 файла — file1.txt, file2.txt, file3.txt, используя команду touch. Чтобы удалить эти файлы при помощи одной команды, запустите:
$ rm file1.txt file2.txt file3.txt
Вывод
Удалить все файлы в папке Linux с определенным расширением можно, используя подстановочный символ (*). В приведенном ниже примере подстановочный символ ищет и удаляет все файлы с расширением .txt
$ rm *.txt
Как удалить файлы в интерактивном режиме
Если нужно подтвердить удаление файлов перед их удалением, используйте -i flag, как показано ниже.
$ rm -i file1.txt
Вывод
Как принудительно удалить файлы
Чтобы принудительно удалить файлы, особенно те, которые были защищены от записи, используйте флаг -f , как показано ниже.
$ rm -f file1.txt
Вывод
Как удалить пустые каталоги
Если вы хотите удалить пустой каталог, используйте флаг -d с командой rm
$ rm -d directory_name
Давайте создадим пустой каталог и назовем его data.
Чтобы удалить этот каталог, запустите
$ rm -d data
Вывод
В Linux команда удалить папку может выглядеть, как rmdir. Rmdir — это сокращение от слов remove directory. Ниже приведен синтаксис.
$ rmdir directory_name
Во втором примере мы создадим новый каталог и назовем его linux . Затем мы удалим его с помощью команды rmdir.
Вывод
Как в Linux удалить директорию с файлами
Если нужно удалить заполненные каталоги и все их содержимое, используйте флаг -r, как показано ниже
$ rm -r directory_name
В этом примере у нас есть каталог с названием distros, в котором хранится 5 файлов, а именно centos, debian, fedora и mint.
Чтобы удалить каталог и его содержимое, запустите:
$ rm -r distros
Как рекурсивно удалить несколько каталогов
Чтобы удалить сразу несколько каталогов, используйте приведенный ниже синтаксис:
$ rm -r directory_1 directory_2 directory_3
Например, для того чтобы удалить 3 каталога, а именно data1, data2 и data3, запустите:
$ rm -r data1 data2 data3
Вывод
Как удалить папку в терминале Linux принудительно и рекурсивно
Для того чтобы рекурсивно и принудительно удалить каталоги без запроса, используйте комбинацию флага -rf , как показано ниже:
$ rm -rf directory_name
Заключение
Теперь вы знаете, как безопасно удалить файл в Linux, как удалить папку в Linux через терминал, как удалить несколько файлов и многое другое.
Каждую неделю мы в live режиме решаем кейсы на наших открытых онлайн-практикумах, присоединяйтесь к нашему каналу в Телеграм, вся информация там.
Если вы хотите освоить функционал системного администратора Linux на практике, приглашаем на наш практикум Linux by Rebrain.