Команды rm и rmdir удаляют файлы и каталоги в Linux, macOS и других Unix-подобных операционных системах. Они похожи на команды del и deltree в Windows и DOS. Эти команды очень мощные и имеют довольно много опций.
Важно отметить, что файлы и каталоги, удаленные с помощью rm и rmdir , не перемещаются в корзину. Они сразу же удаляются с вашего компьютера. Если вы случайно удалили файлы с помощью этих команд, вы сможете восстановить их только из резервной копии.
Самый простой случай — это удаление одного файла в текущем каталоге. Введите команду rm, пробел, а затем имя файла, который вы хотите удалить.
Rm file_1.txt
Если файл не находится в текущем рабочем каталоге, укажите путь к местоположению файла.
Rm ./path/to/the/file/file_1.txt
Вы можете передать более одного имени файла в rm. При этом удаляются все указанные файлы.
Rm file_2.txt file_3.txt
Подстановочные знаки могут использоваться для выбора групп файлов, которые будут удалены. Знак * представляет несколько символов, а символ ? представляет один символ. Эта команда удалит все файлы изображений png в текущем рабочем каталоге.
Rm * .png
Эта команда удалит все файлы с одним символьным расширением. Например, это удалит File.1 и File.2, но не File.12.
Рм *.?
Если файл защищен от записи, вам будет предложено удалить файл. Вы должны ответить с помощью y или n и нажать «Enter».
Чтобы снизить риск использования rm с подстановочными знаками, используйте параметр -i (интерактивный). Для этого необходимо подтвердить удаление каждого файла.
Rm -i * .dat
Опция -f (сила) противоположна интерактивной. Он не запрашивает подтверждение, даже если файлы защищены от записи.
Rm -f имя_файла
Чтобы удалить пустой каталог, используйте опцию -d (directory). Вы можете использовать подстановочные знаки (* и?) В именах каталогов так же, как и в именах файлов.
Rm -d directory
Предоставление более одного имени каталога удаляет все указанные пустые каталоги.
Rm -d directory1 directory2 /path/to/directory3
Чтобы удалить не пустые каталоги, используйте параметр -r (рекурсивный). Чтобы было ясно, это удаляет каталоги и все файлы и подкаталоги, содержащиеся в них.
Rm -r directory1 directory2 directory3
Если каталог или файл защищен от записи, вам будет предложено подтвердить удаление. Чтобы удалить не пустые каталоги и подавить эти приглашения, используйте вместе параметры -r (рекурсивный) и -f (принудительный).
Rm -rf directory
Здесь требуется осторожность. Ошибка в команде rm -rf может привести к потере данных или неисправности системы. Это опасно, и осторожность — лучшая политика. Чтобы получить представление о структуре каталогов и файлах, которые будут удалены командой rm -rf, используйте команду tree .
Используйте apt-get для установки этого пакета в вашу систему, если вы используете Ubuntu или другой дистрибутив на основе Debian. В других дистрибутивах Linux используйте инструмент управления пакетами вашего дистрибутива Linux.
Sudo apt-get install tree
Выполнение команды tree дает простую для понимания диаграмму структуры каталогов и файлов под каталогом, из которого она запускается.
Вы также можете указать путь к команде tree чтобы он запускал дерево из другого каталога в файловой системе.
Tree path/to/directory
Команда rm также имеет параметры --one-file-system , --no-preserve-root , --preserve-root , но они рекомендуются только для опытных пользователей. Если вы что-то не так, вы можете случайно удалить все ваши системные файлы.
Есть еще одна команда rmdir , которую вы можете использовать для удаления каталогов. Разница между rm и rmdir том, что rmdir может удалять только пустые каталоги. Он никогда не удалит файлы.
Самый простой случай — удаление одного пустого каталога. Как и в случае с rm , вы можете передать несколько имен каталогов в rmdir или rmdir путь к каталогу.
Удалите один каталог в текущем каталоге, передав его имя в rmdir:
Rmdir directory
Удалите несколько каталогов, передав список имен в rmdir:
Rmdir directory1 directory2 directory3
Удалите каталог не в текущем каталоге, указав полный путь к этому каталогу:
Rmdir /path/to/directory
Если вы попытаетесь удалить не пустую папку, rmdir выдаст вам сообщение об ошибке. В следующем примере rmdir успешно и без вывода сообщений удаляет каталог clients но отказывается удалять каталог projects поскольку он содержит файлы. Каталог projects остается точно таким, каким он был, а файлы в нем нетронутыми.
Когда rmdir выдает ошибку «Directory not empty», он прекращает обработку каталогов, переданных ему в командной строке. Если вы попросили удалить четыре каталога, а в первом содержались файлы, 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 удаляет ее.
Эта команда использовалась.
Rmdir --ignore-fail-on-non-empty work/reports /work/quotes
Вы можете использовать опцию -p (parent), чтобы удалить каталог, а также удалить его родительские каталоги. Этот прием работает, потому что rmdir начинается с целевого каталога, а затем возвращается к родительскому. Теперь этот каталог должен быть пустым, поэтому он может быть удален rmdir, и процесс повторяет шаг назад по пути, предоставленному rmdir.
В следующем примере команда, переданная в rmdir:
Rmdir -p work/invoices
Каталоги invoices и work удаляются по запросу.
Используете ли вы Bash или любую другую оболочку? Linux предоставляет гибкие и мощные команды для удаления каталогов и файлов прямо из командной строки терминала. Некоторые люди предпочитают иметь рабочий процесс, который вращается вокруг терминала. У других может не быть выбора в этом вопросе. Они могут работать на серверах без установленного графического интерфейса или в удаленном сеансе в автономной системе, такой как Raspberry Pi. Эти команды идеально подходят для этой группы людей.
Но какой бы тип рабочего процесса вы ни предпочли, эти команды очень хорошо подходят для включения в сценарии оболочки. Если сценарий запускается заданием cron , это может помочь автоматизировать рутинные служебные задачи, такие как очистка нежелательных файлов журнала. Если вы исследуете этот вариант использования, помните о силе этих команд, тщательно проверяйте все и всегда сохраняйте последнюю резервную копию.
Команда MKDIR используется для создания каталога или подкаталога . Команда имеет следующий синтаксис: MKDIR[диск:]путь. Как видно из синтаксиса команда, параметр «путь» является обязательным. Данный параметр определяет название создаваемого каталога.
Например, создадим на диске «C» папку «MyFolder»: mkdir MyFolder
Теперь загляните на диск «C». Если вы все сделали правильно, в корневой директории появится папка «MyFolder». В данном случае мы создали папку в текущей директории. Теперь создадим папку «MyFolder1» на диске «D»: mkdir d:\MyFolder
Теперь на диске «D» есть папка «MyFolder1»
Если необходимо создать подкаталог, то используются те же самые команды с указанием всех подкаталогов.
Например, создадим папку «мир», которая находится в папке «привет», которая в свою очередь находится на диске «C»: mkdir привет\мир
Теперь, если вы зайдете на диск «C», то увидите там папку «привет», а в этой папке – папку «мир». Таким способом можно создавать подкаталоги, уровень вложенности которых ограничен лишь объемом памяти жесткого диска.
Команда MKDIR не сработает, если вы попытаетесь создать каталог, который уже существует в выбранной директории.
Например, создадим на диске «D» еще одну папку с названием «MyFolder1»
Команда RMDIR
удаляет каталог или подкаталог.
Cинтаксис команды: RMDIR[Q][диск:]путь.
Например, удалим с диска «D», созданную ранее папку «MyFolder1»: rmdir d:\MyFolder1
Команда RMDIR не будет выполнена, если в удаляемом каталоге находятся другие каталоги или файлы.
Например, удалим папку «привет» с диска «C» (если не забыли, в этой папке содержится еще одна папка «мир»): rmdir привет
Для того чтобы удалить каталог вместе со всеми подкаталогами и файлами используются ключ /S
или /Q
При использовании ключа /S команда RMDIR удалит каталог вместе со всем содержимым. При удалении на экран будет выведено сообщение о подтверждении удаления. rmdir /S привет
На экран выводится сообщение. При нажатии на клавишу «y» папка «привет» удалится вместе со всем содержимым.
Параметр /Q отключает запрос на подтверждение удаления непустого каталога: rmdir /S /Q привет
Обратите внимание, что в данном случаем в одной команде используется сразу 2 ключа. Ключ /S позволяет удалять каталог вместе со всем содержимым, а ключ /Q отключает запрос на подтверждение удаления.
Команду MKDIR можно записать как MD. Обе команды аналогичны друг и являются сокращениями от англ. «make directory» - создать каталог.
Команду RMDIR можно записать как RD. Обе команды аналогичны друг и являются сокращениями от англ. «remove directory» - удалить каталог.
Ч тобы удалить файл или каталог в Linux из командной строки, используйте команду rm (remove).
Будьте особенно внимательны при удалении файлов или каталогов с помощью команды rm , поскольку после удаления файла его невозможно восстановить.
В этой статье мы покажем вам, как использовать команду rm для удаления файлов и каталогов в с помощью примеров и объяснений наиболее распространенных параметров rm.
rm filename
Если файл защищен от записи, вам будет предложено подтвердить ее, как показано ниже. Чтобы удалить файл введите y и нажмите Enter . В противном случае, если файл не защищен от записи, он будет удален без запроса.
rm: remove write-protected regular empty file "filename"?
rm filename1 filename2 filename3
Вы также можете использовать подстановочный знак (*) и регулярные выражения для соответствия нескольким файлам. Например, чтобы удалить все файлы с расширением.pdf в текущем каталоге, используйте следующую команду:
rm *.pdf
Когда вы используете rm с wildcards (*) и регулярными расширениями, рекомендуется перечислить файлы с помощью команды ls , чтобы вы могли видеть, какие файлы будут удалены перед запуском команды rm .
rm -i filename(s)
rm -f filename(s)
rm -fv *.txt
rm -d dirname
rm -r dirname
Если каталог или файл в каталоге защищены от записи, вам будет предложено подтвердить удаление.
rm -rf dirname
rm -r dirname1 dirname2 dirname3
То же, что и в файлах, вы также можете использовать подстановочный знак (*) и регулярные выражения для соответствия нескольким каталогам.
К настоящему моменту вы должны хорошо понимать, как использовать команду rm в Linux и вы должны научиться безопасно удалять файлы и каталоги с помощью командной строки.
Какую команду можно использовать?
Ответ
: Чтобы удалить директорию (также известную как «папка» в ОС Windows и Mac OS), Вы можете воспользоваться следующими командами:
rmdir удаляет директорию(и) только если они не содержат файлов. Синтаксис команды довольно прост:
rmdir
directory-name
rmdir
[
option]
directory-name
Откройте терминал и введите следующую команду чтобы удалить директорию / tmp/ docs :
rmdir / tmp/ docs
Если директория содержит файлы, то команда выдаст ошибку:
$ rmdir
letters
rmdir: letters: Directory not empty
Вы можете зайти в директорию и узнать что за файлы там хранятся:
$ cd
letters
$ ls
В следующем примере, удалим директорию data, foo и bar. Структура этих директорий следующая: data содержит только директорию foo, которая, в свою очередь, содержит только директорию bar, которая пуста. Удалить сразу все эти директорию можно следующей командой:
cd
/
home/
nixcraft
rmdir
-p
data/
foo/
bar
В повседневной работе гораздо чаще приходится удалять не пустые директории, и тут на на помощь приходит команда rm . К примеру, удалить все содержимое директории letters можно командой (Осторожно! удаление без подтверждения):
$ rm -rf letters/
Чтобы получить дополнительную информацию по этим командам, Вы всегда можно воспользоваться следующей стандартной командой-справочником-подсказкой-документацией:
man
mkdir
man
rm
Казалось бы, а зачем создавать отдельную команду для удаления только пустых директорий, если можно воспользоваться rm ? Но, вдумавшись, понимаешь, что это была просто великолепная идея! Почему? Да потому что невозможно запомнить какие и где файлы хранятся, и когда нужно удалить директорию с каким-нибудь глупым или подозрительным названием (явно созданную по ошибке) можно воспользоваться безопасной командой rmdir , которая выдаст ошибку если в этой директории есть какие-то файлы. Очень удобно! Это защищает от случайного удаления.
По материалам отличного сайта cyberciti.biz . Желаю Вам хорошего дня и переходите на !
Удаление файлов в Linux - задача, которая не вызывает затруднений у опытных пользователей. Наша же статься ориентирована, скорее, на начинающих. В ней вы сможете посмотреть, как удалить файлы через терминал, и какие команды лучше всего при этом использовать.
Почему лучше удалять файлы из консоли? Дело в том, что это даёт ряд преимуществ и бо́льшую гибкость. К примеру, используя специальную команду, вы легко и полностью удалите файл с жёсткого диска без возможности восстановления. Или всего одной командой и с помощью определённых символов, условий либо регулярных выражений удалите сотни не нужных вам файлов в каталоге либо подкаталогах, отвечающих некоторому критерию.
В ОС Linux для удаления файлов есть стандартная утилита rm . Как это принято со стандартными утилитами, в названии rm есть определённая идея. В нашем случае речь идёт о сокращении от английского слова Remove - удалять.
Итак, чтобы выполнить удаления одного файла, используем команду rm , указывая за ней имя нашего файла:
Если наш файл находится не в текущем рабочем каталоге, нужно указать путь к его местоположению:
Rm /home/user/filename
Бывает, что файл защищён от записи. Тогда нам предложат подтвердить команду. Чтобы удалить файл в такой ситуации, просто вводим y и нажимаем Enter.
rm: remove write-protected regular empty file "filename"?
Если мы хотим удалить сразу несколько файлов в Linux, то это тоже не проблема: используем команду rm , за которой прописываем имена наших файлов через пробел:
rm filename1 filename2 filename3
Ещё вариант - использование подстановочного знака * и регулярных выражений для соответствия определённым файлам. К примеру, мы легко удалим все файлы в Linux, имеющие расширение.txt следующей командой:
Для подтверждения каждого файла перед удалением используйте опцию -i:
rm -i filename(s)
Но когда файлов много, а вы твёрдо уверены в правильности своей команды и не хотите каждый раз отвечать на вопрос системы, используйте противоположную опцию -f . Будут удалены все файлы безоговорочно, т. е. без лишних вопросов:
rm -f filename(s)
Если хотите удалить пустой каталог, задействуйте опцию -d .
Если хотим удалить непустой каталог и все файлы, которые в нём находятся, поступаем следующим образом:
Опять же, в случае наличия защиты от записи, система Linux спросит пользователя, стоит ли выполнять удаление. Если мы хотим удалить файлы и непустые каталоги без лишних вопросов, делаем так:
Когда хотим удалить сразу несколько каталогов, мы применяем команду rm, прописывая за ней имена каталогов через пробел:
rm -r dirname1 dirname2 dirname3
Кстати, здесь мы тоже можем использовать подстановочный знак (*) и регулярные выражения, обеспечивающие соответствие нескольким каталогам.
Как видите, удалить файл в Linux через терминал совсем несложно, поэтому с этой операцией справится каждый. При этом вы должны не только понимать, как правильно использовать команду rm в Linux, но и знать, как делать это безопасно.