Как удалить файлы и каталоги в терминале Linux

И для тех кто всё-таки принял волевое решение, небольшой гайд по основам работы с файлами и каталогами.

Команда rm для удаления файлов и папок

Для удаления файлов используется команда “rm”, а для удаления папок (директорий) команда “rmdir”. Стоит отметить, что команда “rmdir” может удалить только пустые директории. Для удаления папки с какой либо информацией, будь то файлы конфигураций или файлы изображений, используется команда “rm -r”, то есть, рекурсивное удаление. Так же можно удалять файлы и папки при помощи команды “rm -rf”, как вы можете догадаться, “r” это рекурсивное удаление, а “f” обозначает принудительное удаление папок и файлов. Команда “rm -rf” вам может пригодится, когда папка используется например другим пользователем. Для вызова справки по команде “rm” введите в терминале:

Команда rm для удаления файлов и папок

rm —help

Нахождение сломанных символических ссылок

У команды find есть опция, которая позволяет вам найти символические ссылки, которые указывают на файлы, которые больше не существуют. Эта команда перечисляет символические ссылки в текущем каталоге:

$ find . -type l

буква l указывает команде поиска искать символические ссылки.

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

$ find . -xtype l

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

$ find . -xtype l 2>/dev/null

Вы также можете найти неработающие символические ссылки с помощью такой команды. Она длиннее предыдущей, но делает тоже самое:

Читайте также:  Абсолютный и относительный путь

$ find . -type l ! -exec test -e {} \; -print 2>/dev/null

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

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

Самый простой случай – удаление одного пустого и в случае rm , вы можете передать несколько имен каталогов в rmdir или указать путь к каталогу.

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

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

каталог rmdir

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

rmdir directory1 directory2 directory3

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

rmdir/path/to/directory

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

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

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

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

Читайте также:  Adblock в UC BROWSER – конец назойливой рекламе

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

rmdir —ignore-fail-on-непустая работа/отчеты/работа/цитаты

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

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

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

rmdir -p work/invoices

Директории invoices и work удаляются по запросу.

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

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

Команды для работы с процессами

ps — вывести список процессов. ps axu — посмотреть все процессы. ps axu | grep win — отобразить все процессы, где встречаются символы «win».

kill — убить программу, после команды указывается номер программы (идентификатор процесса — PID), который можно узнать с помощью команды ps. Пример: kill 1234.

killall команда — завершает все процессы, запущенные с помощью указанной команды.

bg — продолжить работу программы в фоновом режиме, например после комбинации клавиш Ctrl+Z. После команды может быть указан PID:

Читайте также:  14 команд CMD, которые должен знать каждый пользователь

bg 1234.fg — продолжить выполнение программы в обычном режиме, также может быть указан PID.

архивов и сжатие данных.

«zip» — программа для создания архивов zip, и сжатие файлов.

Программа «zip» создавая архив не удаляет исходный файл.

Пример, zip любой файл. – это имя архива, который будет создан.

Для того чтобы повысить уровень компрессии необходимо указать – [0-9], 0 малое сжатие, 9 максимальное.

«p или e» — защищает паролем архив.

«l» — получение списка файлов для разархивирования.

«t» — проверка файлов, предназначенных для разархивирования.

«unzip» — разархивирование файлов.

«gzip» — программа сжатия файлов.

Программа «gzip» при создании архива удаляет исходный файл.

«c» — данная опция запрещает «gzip» удалять исходных файл.

«r» — рекурсивное выполнение команды.

«0-9» — задает степень компрессии.

«t» — проверка архива.

«gunzip» — распаковка архива.

«bzip2» — программа сжатия файлов.

Программа «bzip2» при сжатии удаляет исходный файл, для того чтобы сохранить исходный файл нужно задать опцию «с» и переназначить вывод в файл, имя которого оканчивается символами «.bz2».

Пример, bzip2 –c moby — > moby —

«0-9» — задает степень сжатия.

«t» — проверка файлов.

«bunzip2» — распаковывает сжатые файлы.

«tar» — программа по архивированию файлов.

Данная программа не удаляет исходных файл, в отличии от «gzip» и «bzip2».

«cf» — данные опции указывают программе «tar», что создается архив (—create), и (—file) посредством которой задается имя архивного файла.

Необходимо смотреть файл справки по команде «tar», поскольку опций этой команды огромное количество.