Команда Rm в Linux

Обновлено: 05.07.2024

В этом руководстве по Linux объясняется, как использовать команду Linux rm с синтаксисом и аргументами.

ОБЗОР

ОПИСАНИЕ

На этой странице руководства описана версия GNU rm. rm удаляет каждый указанный файл. По умолчанию каталоги не удаляются.

Если указана опция -I или --interactive=once и имеется более трех файлов или -r, -R или --recursive, тогда rm запрашивает у пользователя, следует ли продолжить всю операцию. Если ответ не положительный, вся команда прерывается.

В противном случае, если файл недоступен для записи, стандартным вводом является терминал, и опция -f или --force не указана, или - i или --interactive=always, rm запрашивает у пользователя, следует ли удалить файл. Если ответ не положительный, файл пропускается.

ВАРИАНТЫ

Удалить (отвязать) ФАЙЛ(ы).

-f, --force игнорировать несуществующие файлы, никогда не запрашивать -i запрашивать перед каждым удалением -I запрашивать один раз перед удалением более трех файлов или при рекурсивном удалении. Менее навязчивый, чем -i, но обеспечивает защиту от большинства ошибок --interactive[=WHEN] подсказка в соответствии с КОГДА: никогда, один раз (-I) или всегда (-i). Без WHEN всегда запрашивать --one-file-system при рекурсивном удалении иерархии, пропускать любой каталог, который находится в файловой системе, отличной от той, что указана в соответствующем аргументе командной строки --no-preserve-root не обрабатывать `/' специально --preserve-root не удалять `/' (по умолчанию) -r, -R, --recursive рекурсивно удалить каталоги и их содержимое -v, --verbose объяснить, что делается --help показать эту справку и выйти -- версия вывести информацию о версии и выйти

По умолчанию rm не удаляет каталоги. Используйте параметр --recursive (-r или -R), чтобы также удалить все перечисленные каталоги вместе со всем их содержимым.

Чтобы удалить файл, имя которого начинается с "-", например "-foo", используйте одну из следующих команд:

rm -- -foo rm ./-foo

Обратите внимание, что если вы используете rm для удаления файла, при наличии достаточного опыта и/или времени можно восстановить часть его содержимого. Для большей уверенности в том, что содержимое действительно невозможно восстановить, рассмотрите возможность использования уничтожения.

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

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

Примечание: немногие использовали параметр –v (подробный) со всеми командами rm. Этот параметр показывает, что команда rm делает в фоновом режиме.

Синтаксис команды rm

Синтаксис команды rm:

Примеры команд rm

Примеры команды Linux rm следующие:

Пример 1. Удаление файла.
Самый простой пример использования команды rm — удаление файла. Например, чтобы удалить файл, введите rm, а затем имя файла:

Эта команда мгновенно удалит файл с именем «testfile».


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

Эта команда мгновенно удалит файл «testfile1», расположенный в каталоге «~/Documents».


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

Эта команда мгновенно удалит файлы «testfile1», «testfile2» и «testfile3», расположенные в текущем каталоге.


Пример 3. Интерактивное удаление файла
Команда rm удаляет файлы без запроса подтверждения, и это невозможно отменить, так как удаленные файлы не перемещаются в корзину. Команда rm имеет параметр -i (интерактивный), который запрашивает подтверждение перед удалением файлов.

Эта команда запросит подтверждение, хотите ли вы продолжить операцию (удаление тестового файла). Если вы хотите продолжить, введите y, в противном случае нажмите n, чтобы прервать команду.


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

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

Пример 5: Удаление каталога
Команду rm также можно использовать для рекурсивного удаления каталога и его содержимого. Например, чтобы удалить каталог с именем «test_directory» и его содержимое, используйте параметр -r (рекурсивный) следующим образом:


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

Эта команда удалит все файлы и папки из текущего рабочего каталога.

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

Эта команда мгновенно удалит пустой каталог с именем «test_dircetory1».


Однако, если каталог не пуст, появится сообщение "Каталог не пуст".


Пример 8. Удаление корневого каталога
По умолчанию команда rm не позволяет рекурсивно удалить все из корневого каталога.


Однако, если вам действительно нужно это сделать, это можно сделать с помощью команды rm –no-preserve-root с параметром.

Эта команда не обрабатывает корневой «/» особым образом и удаляет все файлы, расположенные внутри корневого раздела, вместе с смонтированными внутри него файлами.

Пример 9: Удаление имен файлов, перечисленных в текстовом файле
Чтобы удалить большое количество файлов, перечислите их в текстовом файле. Затем используйте xargs, чтобы прочитать этот список и передать его команде rm.

Первый шаг, который вам нужно сделать, это составить список всех файлов в текстовом файле.


Затем, чтобы удалить все файлы, перечисленные в текстовом файле, используйте следующую команду:

Об авторе

Карим Буздар

Карим Буздар имеет степень инженера в области телекоммуникаций и несколько сертификатов системного администратора. Как ИТ-инженер и технический автор, он пишет для различных веб-сайтов. Он ведет блог на LinuxWays.

В Unix-подобных операционных системах команда rm удаляет файлы.

Эта страница посвящена версии rm для GNU/Linux.

Описание

rm удаляет каждый файл, указанный в командной строке. По умолчанию каталоги не удаляются.

Когда rm выполняется с параметрами -r или -R, он рекурсивно удаляет все соответствующие каталоги, их подкаталоги и все содержащиеся в них файлы. Подробнее об удалении каталогов см. ниже.

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

Сами данные не уничтожаются, но после отвязки с помощью rm становятся недоступными. Удаляйте свои файлы с умом! Это не то же самое, что положить что-то в корзину Windows; после того, как вы rm файл или каталог, отменить это невозможно.

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

Синтаксис

Параметры

< td>Запрашивать в соответствии с WHEN: никогда, один раз (-I) или всегда (-i). Если WHEN не указано, запрашивать всегда. < tr >
-f, --force Игнорировать несуществующие файлы и никогда не запрашивать запрос перед удалением.
-i Запрашивать перед каждым удалением.
-I Запрашивать один раз перед удалением более трех файлов или при рекурсивном удалении. Эта опция менее навязчива, чем -i, но все же обеспечивает защиту от большинства ошибок.
--interactive[=WHEN]
--one-file-system При рекурсивном удалении иерархии , пропустить любой каталог, который находится в файловой системе, отличной от соответствующей аргументу командной строки
--no-preserve-root Не обрабатывать "/" (корневой каталог) любым особым образом.
--preserve-root Не удалять "/" (корневой каталог), что является поведением по умолчанию.
-r, -R, --recursive Рекурсивно удалить каталоги и их содержимое.
-d, -- dir Удалить пустые каталоги. Эта опция позволяет вам удалить каталог без указания -r/-R/--recursive при условии, что каталог пуст. Другими словами, rm -d эквивалентно использованию rmdir.
-v, --verbose Подробный режим; постоянно объяснять, что делается.
--help Показать справочное сообщение и выйти.
--version Показать информацию о версии и выйти.

Примечания по использованию

Если задана опция -I/--interactive=once и файлов больше трех или указаны опции -r/-R/--recursive, rm выдает запрос перед удалением чего-либо. Если пользователь не отвечает yes/y/y на приглашение, вся команда прерывается.

Если файл недоступен для записи, stdin является терминалом, а опция -f/--force не задана или задана опция -i или --interactive=always, rm предлагает пользователю удалить файл. Если ответ не да/д/д, файл пропускается.

Удаление каталогов

По умолчанию rm не удаляет каталоги. Однако если указан параметр -r/-R/--recursive, rm удалит все соответствующие каталоги и их содержимое.

Если указанный каталог пуст, его можно удалить с помощью параметра -d/--dir.

Имена файлов, начинающиеся с дефиса

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

Например, если в вашем текущем каталоге есть файл с именем "-file.txt", вы можете удалить его с помощью команды

Или вы можете удалить его, указав на него путь. Например, если файл «-file.txt» находился в каталоге «/home/hope», вы можете удалить его, используя:

<р>. или, если /home/hope в настоящее время является вашим рабочим каталогом,

<р>. тоже будет работать.

Чем "rm" отличается от "unlink"?

Команда unlink, по сути, делает то же самое, что и rm, но очень строго определена стандартом POSIX. Он работает только с одним файлом за раз; он не работает с каталогами; его поведение не изменяется никакими параметрами командной строки. Он делает одно и только одно: вызывает системный вызов unlink() для одного файла.

Версия rm, используемая в большинстве версий Linux (GNU rm), имеет все опции и тонкости, перечисленные выше: проверки безопасности, интерактивные подсказки, условное удаление, рекурсивную операцию. Он похож на unlink тем, что выполняет системный вызов unlink(), но также может вызывать unlinkat(), если указанный путь является относительным, а не абсолютным.

Другими словами, rm — гораздо более удобный способ использования unlink.

Примеры

Удалите файл myfile.txt. Если файл защищен от записи, вам будет предложено подтвердить его удаление.

Удалите файл myfile.txt. Вам не будет предложено, даже если файл защищен от записи; если rm может удалить файл, он это сделает.

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

Удалить все файлы в рабочем каталоге. rm ни по какой причине не будет спрашивать вас перед их удалением.

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

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

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

То же самое, что и приведенная выше команда, но вам никогда не будет предложено; если rm может удалить файлы, он это сделает.

Связанные команды

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

Удалить каталог в 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 без каких-либо параметров для удаления каталога приводит к сообщению об ошибке:

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

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

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

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

Удаление пустого каталога с помощью команды rm

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

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

Пример иерархии каталогов и файлов

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

Рекурсивное удаление нескольких каталогов, подкаталогов и файлов с помощью команды rm

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

Отображение подсказки в качестве вывода при удалении каталога

команда rmdir

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

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

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

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

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

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

Показ иерархии каталога примеров

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

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

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

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

Использование подстановочных знаков с командой rmdir для удаления нескольких каталогов

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

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

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