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

Обновлено: 21.11.2024

Вы можете удалить каталог в Linux с помощью команды rm. Команда rm может удалить каталог, если он содержит файлы, если вы используете флаг -r. Если каталог пуст, его можно удалить с помощью команд rm или rmdir.

Как удалить каталог в Linux? Это частый вопрос, который задают новички в Linux. Когда вы начнете работать с операционной системой Linux, в какой-то момент вы неизбежно захотите удалить каталог.

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

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

В Linux есть два способа удалить каталог:

  • rmdir: эта команда удаляет пустой каталог.
  • Команда rm: Эта команда удаляет каталог, включая его подкаталоги. Вы должны использовать флаг -r с этой командой, если папка содержит какие-либо файлы.

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

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

Чтобы узнать больше о командной строке, прочтите наше руководство по работе с командной строкой Linux.

Удалить каталог Linux: команда rm

Команда rm позволяет удалять файлы и каталоги. Эту команду можно использовать для удаления как пустых, так и непустых каталогов, в отличие от команды rmdir, которую мы обсудим чуть позже.

81 % участников заявили, что стали более уверенными в своих перспективах работы в сфере технологий после посещения учебного курса. Примите участие в тренировочном лагере сегодня.

Найдите подходящий вариант для буткемпа

В среднем выпускник буткемпа тратит менее шести месяцев на смену карьеры, начиная с буткемпа и заканчивая поиском своей первой работы.

Начните сменить профессию сегодня

Синтаксис команды rm следующий:

  • -d: удалить пустой каталог
  • -r: удалить непустой каталог и все его содержимое

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

Наша команда возвращает:

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

Наша команда удалила папку «lib» и все ее каталоги.

Вы также можете использовать rm для удаления нескольких каталогов. Для этого вы можете указать несколько имен папок после rm. Предположим, вы хотите удалить папки «lib» и «templates» в вашем текущем рабочем каталоге. Вы можете сделать это с помощью этой команды:

  • Care Karma подберет для вас лучшие учебные курсы по технологиям
  • Получайте эксклюзивные стипендии и подготовительные курсы

Принудительно удалить каталог и его содержимое

По умолчанию команда rm -r предложит вам подтвердить удаление файла или папки. Это происходит, если файл, который вы пытаетесь удалить, был защищен. Если вы хотите переопределить это, вы можете указать флаг -f, например:

Эта команда навсегда удалит все каталоги и подкаталоги в каталоге «lib». Вам не будет предложено подтвердить, хотите ли вы удалить какие-либо файлы при выполнении этой команды. Поэтому вам следует использовать эту команду с осторожностью и только тогда, когда вы абсолютно уверены, что хотите удалить содержимое папки.

Удалить каталог Linux: команда rmdir

Команда rmdir позволяет удалять пустые каталоги. Эта команда полезна, если вы знаете, что папка пуста, и хотите удалить ее из вашей системы.

Предположим, что наш текущий рабочий каталог содержит следующие файлы и папки (которые мы можем увидеть с помощью команды Linux «ls»):

Папка «config» пуста. Предположим, вы хотите удалить папку «config» в вашем текущем рабочем каталоге. Вы можете сделать это с помощью этой команды:

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

Вы видите, что каталог «config» больше не существует. Важно отметить, что вы не можете использовать rmdir для удаления каталога, содержащего файл. Если бы наш каталог «config» содержал файл, была бы возвращена следующая ошибка:

Заключение

Используя rm и rmdir, вы можете удалять каталоги в Linux.rm удаляет непустые каталоги. Команда rmdir удаляет пустые каталоги. Его нельзя использовать для удаления каталога, содержащего какие-либо файлы.

Если вы хотите узнать больше об этих командах, введите в терминале man и название команды. Это покажет вам страницу руководства Linux для команды.

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

Чтобы узнать больше о Linux, прочтите наше руководство How to Learn Linux. Это руководство содержит курсы и ресурсы, которые помогут вам на пути к изучению Linux.

"Карьерная карма вошла в мою жизнь, когда я больше всего в ней нуждалась, и быстро помогла мне пройти буткемп. Через два месяца после выпуска я нашла работу своей мечты, которая соответствовала моим ценностям и жизненным целям!"

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

В этом руководстве мы покажем вам, как удалить каталог в Linux с помощью команд в окне терминала или командной строке.

  • Система с дистрибутивом Linux.
  • Учетная запись с правами sudo.
  • Доступ к окну терминала или командной строке.

Примечание. Другие статьи по управлению каталогами в Linux см. в разделах «Как перемещать каталоги в Linux» и «Как переименовать каталог в Linux».

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

Существуют две команды Linux, которые можно использовать для удаления каталога из окна терминала или командной строки:

  • Команда rm удаляет полные каталоги, включая подкаталоги и файлы.
  • Команда rmdir удаляет пустые каталоги.

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

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

команда rm

Команда rm в Linux удаляет файлы и каталоги.

Он использует следующий синтаксис:

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

Различные параметры команды rm включают:

  • -f : Принудительное удаление всех файлов или каталогов.
  • -i : запрашивает подтверждение перед удалением.
  • -I : однократный запрос перед удалением более трех файлов или при рекурсивном удалении.
  • -r : рекурсивно удаляет каталоги и их содержимое.
  • -d : удаляет пустые каталоги.
  • -v : предоставляет подробный вывод.
  • --help : отображает текст справки.
  • --version : отображает версию команды.

Попытка использовать команду rm без каких-либо параметров для удаления каталога приводит к сообщению об ошибке:

Если вы хотите удалить пустой каталог, добавьте флаг -d в команду rm:

Примечание. Если вы хотите удалить каталог, имя которого начинается с дефиса (-), используйте синтаксис rm -- [имя каталога] или rm ./[имя каталога].

Пример ниже показывает, что команда rm с флагом -d удаляет каталог Example:

Используйте флаг -r, чтобы удалить каталог, содержащий подкаталоги и файлы.

На изображении ниже показана древовидная иерархия каталога Example, который содержит подкаталоги Dir1 и Dir2 с несколькими текстовыми файлами в каждом:

При использовании флага -r удаляется весь каталог, включая подкаталоги и файлы, а при использовании флага -v в качестве выходных данных указывается каждый шаг процесса:

Параметр -i отображает запрос на подтверждение удаления каталога. Введите Y и нажмите Enter для подтверждения.

команда rmdir

Команда Linux rmdir удаляет только пустые каталоги. Команда использует следующий синтаксис:

Команда rmdir включает следующие параметры:

  • --ignore-fail-on-non-empty : не показывать сообщение об ошибке при попытке удалить непустой каталог.
  • -p : удаляет каталог вместе с его родительским элементом в иерархии.
  • -v : предоставляет подробный вывод.
  • --help : отображает текст справки.
  • --version : отображает версию команды.

Использование команды rmdir в непустом каталоге приводит к ошибке:

В этом случае каталог Example содержит подкаталог Test:

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

Более простой способ сделать это — использовать параметр -p с именем подкаталога. Это удаляет как подкаталог, так и его иерархический родительский элемент:

Команда rmdir позволяет удалить несколько каталогов с похожими именами, используя подстановочные знаки. Например, если вы хотите удалить каталоги с именами Example1, Example2 и Example3:

После прочтения этого руководства вы сможете удалять каталоги в Linux с помощью команд в окне терминала или командной строке.

Чтобы узнать больше о других командах Linux, ознакомьтесь с нашей памяткой по командам Linux.

Дэйв Маккей

Дэйв Маккей
Писатель

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

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

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

Самый простой случай — удаление одного файла в текущем каталоге. Введите команду rm, пробел и имя файла, который вы хотите удалить.

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

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

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

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

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

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

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

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

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

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

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

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

Здесь требуется осторожность. Ошибка с командой rm -rf может привести к потере данных или сбою системы. Это опасно, и осторожность — лучшая политика. Чтобы получить представление о структуре каталогов и файлах, которые будут удалены командой rm -rf, используйте команду дерева.

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

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

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

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

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

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

Простейшим случаем является удаление одного пустого каталога. Как и в случае с rm , вы можете передать несколько имен каталогов в rmdir или путь к каталогу.

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

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

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

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

Когда rmdir выдает ошибку «Каталог не пуст», он прекращает обработку каталогов, которые были переданы ему в командной строке. Если вы попросили его удалить четыре каталога, а в первом были файлы, rmdir выдаст вам сообщение об ошибке и больше ничего не сделает. Вы можете заставить его игнорировать эти ошибки с помощью параметра --ignore-fail-on-non-empty, чтобы обрабатывались другие каталоги.

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

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

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

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

И счета-фактуры, и рабочие каталоги удаляются в соответствии с запросом.

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

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

< /tbody>
Команды Linux
Файлы tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm
Процессы alias · screen · top · nice · renice · прогресс · strace · systemd · tmux · chsh · история · at · пакетное · бесплатное · которое · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · стена · yes · kill · спать · sudo · su · время · groupadd · usermod · группы · lshw · выключение · перезагрузка · halt · poweroff · passwd · lscpu · crontab · date · bg · fg
Сеть netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · копать · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw
  • › Как использовать BleachBit в Linux
  • › Как восстановить удаленные файлы в Linux с помощью testdisk
  • › Как использовать команду «да» на Mac
  • › Как безопасно удалить файлы в Linux
  • › Почему не было Windows 9?
  • ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
  • › Как установить Google Play Маркет в Windows 11
  • › Почему прозрачные чехлы для телефонов желтеют?

Используйте команду rm для удаления данных в командной строке.

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

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

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

Все команды в этом руководстве будут работать на большинстве компьютеров Linux. Мы использовали установку Ubuntu 20.04, но вы можете запустить это руководство на Raspberry Pi.Все инструкции выполняются через Терминал. Вы можете открыть окно терминала на большинстве компьютеров с Linux, нажав ctrl, alt и t или через меню приложений.

Как удалить файл в Linux

Давайте начнем просто с удаления одного файла. Синтаксис команды имеет следующую структуру.

<р>1. Создайте новый файл с именем test1.txt

<р>2. Перечислите содержимое каталога, чтобы убедиться, что файл был создан. Теперь вы должны увидеть файл test1.txt.

<р>3. Удалите тестовый файл. Удаление файла или папки необратимо. Нет корзины, которая могла бы уберечь нас от ошибочного нажатия клавиши.

<р>4. Перелистните содержимое каталога, чтобы убедиться, что файл был удален. Вы должны увидеть, что файл test1.txt больше не указан.

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

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

<р>1. Создайте пустой каталог. Из своего домашнего каталога создайте пустой каталог.

<р>2. Перейдите в новый каталог.

<р>3. Создайте два тестовых файла в каталоге

<р>4. Перечислите содержимое каталога, чтобы проверить, созданы ли файлы. Вы должны увидеть, что файлы test1.txt и test2.txt теперь отображаются в списке.

<р>5. Вернитесь в домашний каталог

<р>6. Удалить каталог. Чтобы удалить этот каталог, нам нужно использовать аргумент -r. Аргумент -r действует рекурсивно для входа в каталог, проверки и удаления любых файлов внутри. После очистки команда возвращается, чтобы удалить каталог, который она только что очистила.

<р>7. Убедитесь, что каталог был удален. Вы должны увидеть, что test_directory был удален из списка.

<р>8. Повторите описанные выше шаги с 1 по 5, чтобы создать тестовый каталог и файлы.

<р>9. Повторите аргумент -r, но добавьте аргумент -i для интерактивного удаления файлов и каталога. Трудно представить, что делает аргумент -r. Аргумент -i заставляет процесс удаления запрашивать подтверждение (интерактивно) каждого удаления. Введите «y» и нажмите Enter, чтобы подтвердить каждый шаг.

Как удалить файл, защищенный от записи, в Linux

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

<р>1. Создайте тестовый файл с именем test1.txt

. <р>2. Измените права доступа к файлу, чтобы только пользователь и группа, к которой он принадлежит, могли удалить файл.

<р>3. Попробуйте удалить файл с помощью стандартной команды rm . При использовании стандартной команды rm вам будет предложено подтвердить удаление файла test1.txt. На этот раз нажмите n для ответа "нет". Если бы у вас был каталог с сотнями защищенных файлов, вам пришлось бы подтверждать каждый из них с помощью y, что было бы невероятно пустой тратой времени.

<р>4. Удалите файл, используя аргумент -f . Выполнение этой команды с аргументом -f заставляет команду удалить файл и не запрашивает подтверждение. Используйте с осторожностью!

Эти команды невероятно эффективны, просты в использовании и могут значительно упростить выполнение задач по удалению. Возможно, вы видели в Интернете шутки о чрезвычайно опасных версиях этой команды, таких как sudo rm -rf /, и, возможно, из этой статьи вы узнали, почему это может быть так опасно.

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

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