Найти тему
takoedelo

Как удалить файл в терминале linux

Оглавление

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

linux удалить файл
linux удалить файл

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

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

rm [option] filename

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

Вот два метода удаления нескольких файлов в зависимости от их расширения.

Метод 1: Удалите файлы с определенным расширением с помощью команды rm

В примере есть куча gif-файлов, которые заканчиваются расширениями .gif.

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

rm *.gif

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

ls *.gif

Вот как удалить файлы с расширением .gif:

-2

Это можно сделать для любого расширения файла, а не только .gif. Вы даже можете комбинировать несколько расширений.

-3

💡

Вы можете использовать интерактивную опцию -i с командой rm, которая запрашивает подтверждение перед удалением каждого файла. Однако это может быть неудобно, если вам нужно удалить множество файлов.

Интересно, как это работает? Подстановочные знаки!

В двух словах, подстановочный знак - это специальный символ, который вы используете для соответствия определенному шаблону. Ниже приведены несколько часто используемых подстановочных знаков.:

специальные символы
специальные символы

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

Когда вы говорите *.gif, это означает любую комбинацию букв, которая ведет до .gif. Другими словами, это дает вам все файлы с расширением .gif.

Каждый подстановочный знак может использоваться в дополнение к еще одному подстановочному знаку. Но давайте не будем сейчас вдаваться в эти подробности.

Эта точка между * и расширением важна!

Многие люди совершают ошибку, путая *.gif с *gif. Это неправильно. Точка (.) между * и именем расширения имеет решающее значение.

Возьмём сценарий со следующими файлами и посмотрим, что происходит, если использовать выражение *gif вместо *.gif:

-5

Также были удалены файлы со строкой gif, даже если это не было расширением файла, в конце имени файла просто был gif без предшествующей точки.

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

Метод 2: Рекурсивное удаление файлов с определенным расширением с помощью команды find

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

Для рекурсивного удаления файлов с определенным расширением вы можете объединить команду find и команду rm:

Вот пример, где также есть файлы .gif в подкаталогах.

-6

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

find . -type f -name "*.gif" -exec rm -v {} \;

Вот результат, который получился, после запуска команды:

-7

Давайте разберем это подробнее.

  • Точка после "find" означает поиск в текущем каталоге
  • Флаг "-name" указывает имя файла, в котором мы можем использовать регулярное выражение
  • Флаг "-exec" используется для выполнения команды bash по результату команды find
  • Фигурные скобки "{}" служат заполнителем для результата сопоставления файлов, поэтому "rm -v {}" удалит файлы, найденные командой find.
  • Наконец, точкой с запятой заканчивается команда, выполняемая вашей командной оболочкой (команда после exec), и используется обратная косая черта '\', чтобы точка с запятой была экранирована должным образом.

Используйте команду find для работы с файлами с несколькими расширениями

Команда, показанная выше, не распространяется на поиск файлов с несколькими расширениями, что-то вроде "rm * .gif * .txt"

Для достижения этого вы можете использовать -o аргумент, который означает "логический оператор OR". Но мы также должны использовать обратную косую черту "\", чтобы избежать круглых скобок

-8

Здесь вы можете видеть, что все файлы с расширением 'txt' и файлы с расширением 'gif' удаляются рекурсивно.

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

Заключение

В этой статье рассказывалось об удалении файлов с определенным расширением. Мы также рассмотрели рекурсивный поиск и удаление этих файлов.

📌"С большой мощью приходит большая ответственность", помните об этом при использовании подстановочных знаков и регулярных выражений. Одна ошибка - и важные файлы могут быть случайно удалены .

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

Как прокручивать в терминале Ubuntu?

Как найти, где apt установил пакет в Debian и Ubuntu

Как удалить файл или папку в Linux

7 менеджеров буфера обмена в Linux

Горячие клавиши терминала linux