Как удалить файлы и каталоги в терминале Linux
Резюме: введите «rm (имя файла)» в Терминале, чтобы удалить файл в Linux. Чтобы удалить всю папку (или каталог) и все ее содержимое, вместо этого введите «rm -r (имя папки)» в Терминале.
Команды rm
и rmdir
удаляют файлы и каталоги в Linux, macOS и других Unix-подобных операционных системах. Они аналогичны командам del
и deltree
в Windows и DOS. Эти команды очень мощные и имеют довольно много опций.
Важно отметить, что файлы и каталоги, удаленные с помощью rm
и rmdir
, не перемещаются в корзину. Они немедленно удаляются с вашего компьютера. Если вы случайно удалите файлы с помощью этих команд, восстановить их можно будет только из резервной копии.
Как удалить файлы с помощью rm
Самый простой случай — удаление одного файла в текущем каталоге. Введите команду 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.
rm *.?
Если файл защищен от записи, вам будет предложено удалить файл. Вы должны ответить y
или n
и нажать «Ввод».
Чтобы снизить риск использования rm
с подстановочными знаками, используйте параметр -i
(интерактивный). Это требует подтверждения удаления каждого файла.
rm -i *.dat
Параметр -f
(принудительно) противоположен интерактивному. Подтверждение не запрашивается, даже если файлы защищены от записи.
rm -f filename
Как удалить каталоги с помощью rm
Чтобы удалить пустой каталог, используйте параметр -d
(каталог). Вы можете использовать подстановочные знаки (*
и ?
) в именах каталогов точно так же, как и в именах файлов.
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
, чтобы она запускала дерево из другого каталога в файловой системе.
tree path/to/directory
Команда rm
также имеет параметры --one-file-system, --no-preserve-root, --preserve-root
, но они рекомендуются только для опытных пользователей. . Если вы что-то сделаете не так, вы можете случайно удалить все системные файлы. Обратитесь к странице руководства команды для получения дополнительной информации.
Как удалить каталоги с помощью rmdir
Существует еще одна команда, называемая rmdir
, которую вы можете использовать для удаления каталогов. Разница между rm
и rmdir
заключается в том, что rmdir
может удалять только пустые каталоги. Он никогда не удалит файлы.
Самый простой случай — удаление одного пустого каталога. Как и в случае с rm
, вы можете передать несколько имен каталогов в rmdir
или путь к каталогу.
Удалите один каталог в текущем каталоге, передав его имя в rmdir
:
rmdir directory
Удалите несколько каталогов, передав список имен в rmdir
:
rmdir directory1 directory2 directory3
Чтобы удалить каталог, не входящий в текущий каталог, укажите полный путь к этому каталогу:
rmdir /path/to/directory
Если вы попытаетесь удалить непустую папку, rmdir
выдаст вам сообщение об ошибке. В следующем примере rmdir
успешно и без вывода сообщений удаляет каталог clients
, но отказывается удалять каталог projects
, так как он содержит файлы. Каталог projects
остается таким же, как и был, и файлы в нем остаются нетронутыми.
Когда 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
игнорировать ошибку и переходить к следующей папке, которую необходимо обработать, то есть к работа/котировки
. Это пустая папка, и rmdir
удаляет ее.
Это была использованная команда.
rmdir --ignore-fail-on-non-empty work/reports /work/quotes
Вы можете использовать параметр -p
(parents), чтобы удалить каталог, а также удалить его родительские каталоги. Этот трюк работает, потому что rmdir
начинается с целевого каталога, а затем возвращается к родительскому. Теперь этот каталог должен быть пуст, поэтому его можно удалить с помощью rmdir
, и процесс повторяется, возвращаясь к пути, который был указан для rmdir
.
В следующем примере в rmdir
передается команда:
rmdir -p work/invoices
Каталоги invoices
и work
удаляются в соответствии с запросом.
Используете ли вы Bash или любую другую оболочку, Linux предоставляет гибкие и мощные команды для удаления каталогов и файлов прямо из командной строки терминала. Некоторые люди предпочитают, чтобы рабочий процесс вращался вокруг терминала. У других может не быть выбора в этом вопросе. Они могут работать на серверах без установленного графического интерфейса или в удаленном сеансе безголовой системы, такой как Raspberry Pi. Эти команды идеально подходят для этой группы людей.
Но какой бы тип рабочего процесса вы ни предпочли, эти команды очень хорошо подходят для включения в сценарии оболочки. Если сценарий запускается заданием cron
, он может помочь автоматизировать рутинные задачи по обслуживанию, такие как очистка ненужных файлов журнала. Если вы исследуете этот вариант использования, помните о силе этих команд, тщательно проверяйте все и всегда сохраняйте последнюю резервную копию.
Linux Commands | ||
Files | 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 · scp · gzip · chattr · cut · find · umask · wc | |
Processes | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap | |
Networking | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld |
RELATED: Best Linux Laptops for Developers and Enthusiasts