- Команда rm – удаление файлов и директорий в дистрибутивах Linux
- Команда rm
- Опции команды rm
- f (force)
- i (interactive)
- r (recursive)
- v (verbose)
- Заключение
- Как удалять директории в Linux?
- Синтаксис команды rmdir
- Примеры
- Удаление всей директории со всеми вложенными файлами и директориями командой rm
- Дополнительная информация о командах rmdir и rm
- Почему существует две различные команды для одной операции?
- Как удалить каталог в Linux
- Подготовка
- Удаление каталогов с помощью rmdir
- Удаление каталогов с помощью rm
- Удаление каталогов с помощью find
- Удаление всех пустых каталогов
- / bin / rm: слишком длинный список аргументов
- Выводы
Команда rm – удаление файлов и директорий в дистрибутивах Linux
Терминал Linux мощный инструмент, позволяющий управлять системой. Несмотря на то, что в современных дистрибутивах можно обойтись без знания терминала. Может случиться так, что графическая оболочка не загрузится и перед вами будет черное окно терминала. И придется работать в нем, и тут знание терминала будет только на пользу. Существует множество команд, позволяющих выполнять те или иные действия, и об одной акой сегодня и поговорим.
Команда rm – это одна из важных команд в терминале Linux. Она позволяет удалить файлы и папки из операционной системы. Но, несмотря на свою простоту, использование этой команды может быть опасным, поскольку неправильное использование может привести к потере ценных данных. А то и вовсе может повредить саму систему. В этой статье мы рассмотрим основы использования команды rm и наиболее распространенные опции.
Команда rm
Синтаксис у команды rm довольно простой. Вводим команду rm, а затем указываем файл или директорию которую хотим удалить. Что бы увидеть содержимое директории, можно использовать команду ls, подробнее о которой читайте по этой ссылке. К примеру, имеется файл под названием “text”, для его удаления вводим команду:
Если необходимо удалить несколько файлов, то просто указываете их имена через пробел после команды rm. К примеру, имеются файлы “text” и “file” которые необходимо удалить:
Разумеется, у команды rm, как и у многих других в дистрибутивах Linux, есть некоторые опции, которые разберем чуть ниже. Для удаления директории вместе со всем ее содержимым, необходимо использовать опцию “-r”, что означает – рекурсивно:
Опции команды rm
Как уже говорилось выше, команда rm имеет опции, которые позволяют выполнять определенные действия. Ниже рассмотрим несколько наиболее распространенных опций доступных для команды rm:
f (force)
Опция – f (force) позволяет команде rm удалить файлы без запроса подтверждения. Используйте эту опцию с осторожностью:
i (interactive)
Опция -i (interactive) наоборот, запрашивает подтверждения на удаления каждого файла. Данная опция может помочь вам избежать удаления файлов по ошибке:
r (recursive)
Опция -r (recursive) позволяет удалять директорию полностью, со всем ее содержимым. Выше мы уже встречались с этой опцией:
v (verbose)
Опция -v (verbose) выводит информацию о каждом файле, который подлежит удалению:
Заключение
Команда rm – это мощный инструмент для удаления директорий и файлов в дистрибутивах Linux. Но, она может быть опасной, если использовать ее неправильно. К примеру, можно удалить не тот файл или целую директорию, что также может сказаться на работоспособности системы. К примеру, команда “sudo rm -rf /*” удалит содержимое в корневой директории, что приведет к неработоспособности системы. Ни в коем случае не вводите данную команду!
Чтобы избежать потери данных и не повредить систему, используйте команду rm с осторожностью, особенно при использовании опции -f (force) или -r (recursive).
Более подробно о всех доступных опциях команды rm можно узнать из справки набрав команду man rm и rm –help.
При работе с командой rm могут быть полезны и другие, к примеру, команда pwd, которая позволяет узнать в какой директории вы сейчас находитесь. О том как копировать директории и файлы, читайте тут. Про перемещение файлов и директорий написано тут. А про команду ls, ссылка была дана выше…
А на этом сегодня все, если статья оказалась вам полезна, подписывайтесь на рассылку журнала в pdf формате, а так же на социальные сети журнала Cyber-X:
По вопросам работы сайта, сотрудничества, а так же по иным возникшим вопросам пишите на E-Mail. Если вам нравится журнал и вы хотите отблагодарить за труды, вы можете перечислить донат на развитие проекта.
Как удалять директории в Linux?
Вопрос: Каким способом можно удалить директорию в Linux, какую команду можно использовать?
Ответ: Чтобы удалить директорию (также известную как «папка» в ОС Windows и Mac OS), Вы можете воспользоваться следующими командами:
- rmdir – удаляет указанную директорию при этом она должна быть пуста, т.е. не содержать файлов.
- rm – удаляет указанную директорию вместе со всеми вложенными файлами и директориями.
Синтаксис команды rmdir
rmdir удаляет директорию(и) только если они не содержат файлов. Синтаксис команды довольно прост:
rmdir directory-name
rmdir [option] directory-name
Примеры
Откройте терминал и введите следующую команду чтобы удалить директорию /tmp/docs:
Если директория содержит файлы, то команда выдаст ошибку:
$ rmdir letters
rmdir: letters: Directory not empty
Вы можете зайти в директорию и узнать что за файлы там хранятся:
В следующем примере, удалим директорию data, foo и bar. Структура этих директорий следующая: data содержит только директорию foo, которая, в свою очередь, содержит только директорию bar, которая пуста. Удалить сразу все эти директорию можно следующей командой:
cd /home/nixcraft
rmdir -p data/foo/bar
- Параметр -p указывает команде, чтобы было произведено удаление пустых директорий по всему указанному пути. Т.е. в нашем примере будет удалены все три директории, т.к. они не содержат никаких файлов, а только пустые вложенные директории.
Удаление всей директории со всеми вложенными файлами и директориями командой rm
В повседневной работе гораздо чаще приходится удалять не пустые директории, и тут на на помощь приходит команда rm. К примеру, удалить все содержимое директории letters можно командой (Осторожно! удаление без подтверждения):
- -r – указывает что нужно производить удаление рекурсивно, т.е. пройтись по всему списку файлов и папок и попытаться удалить каждую из них.
- -f — удаление без запроса его подтверждения.
Дополнительная информация о командах rmdir и rm
Чтобы получить дополнительную информацию по этим командам, Вы всегда можно воспользоваться следующей стандартной командой-справочником-подсказкой-документацией:
Почему существует две различные команды для одной операции?
Казалось бы, а зачем создавать отдельную команду для удаления только пустых директорий, если можно воспользоваться rm? Но, вдумавшись, понимаешь, что это была просто великолепная идея! Почему? Да потому что невозможно запомнить какие и где файлы хранятся, и когда нужно удалить директорию с каким-нибудь глупым или подозрительным названием (явно созданную по ошибке) можно воспользоваться безопасной командой rmdir, которая выдаст ошибку если в этой директории есть какие-то файлы. Очень удобно! Это защищает от случайного удаления.
По материалам отличного сайта cyberciti.biz. Желаю Вам хорошего дня и переходите на 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 вы можете быстро и эффективно удалять каталоги по различным критериям.
Удаление каталогов — простой и легкий процесс, но вы должны быть осторожны, чтобы не удалить важные данные.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.