3 способа удалить все ненужные файлы в каталоге Linux

3 способа удалить все ненужные файлы в каталоге

Рубрики:

Linux, Терминал Linux

Метки:

, , , ,

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

Содержание:

  1. Используйте команду rm
  2. Используйте команду find
  3. Используйте переменную GLOBIGNORE
  4. Выводы

Используйте команду rm

Утилита командной строки rm нужна, чтобы удалять файлы и директории. Обычно пользователи ее применяют для удаления какого-то одно файла или каталога. Однако, ее можно использовать и для решения нашей задачи. Чтобы удалить все файлы в каталоге, кроме одного конкретного, добавьте к команде аргумент !("filename"):

 

rm

Читайте также: Как удалить огромные (100-200 ГБ) файлы в Linux.

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

 

В одном каталоге может быть несколько файлов с разным расширениями. Команда rm позволяет удалить все файлы, кроме тех, которые имеют указанный формат. Например:

 

Если показанные способы у Вас не работали, значит Вам нужно включить опции extglob оболочки bash. Параметры extglob позволят использовать более сложные шаблоны в качестве аргументов команды rm:

 

После удаления всех необходимых файлов, Вы можете отключить extglob, если его параметры больше Вам не понадобятся:

Используйте команду find

Утилита find осуществляет поиск файлов в иерархии каталогов. Хотя, ее также можно применять и для удаления файлов. Для решения поставленной задачи нужно использовать следующий синтаксис:

 

Давайте разберем подробнее синтаксис команды:

  • <directory-path> — указывает путь к каталогу;
  • -type f — определяет тип объекта директории (в нашем случае — обычный файл);
  • -not — обозначает, что find будет обрабатывать все файлы, не соответствующие указанному шаблону;
  • -name 'filename' — указывает название шаблона для поиска;
  • -delete — удаляет найденные объекты.

Представим, что нам нужно удалить в текущем каталоге все файлы, кроме имеющих расширение *.gz:

 

find1

Если в каталоге находится несколько важных файлов, у Вас есть возможность сохранить их в каталоге, а остальные удалить. Для этого используйте следующую команду:

 

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

 

find

Вы также можете использовать find вместе с командами rm и xargs для удаления всех файлов каталога, за исключением указанного:

 

Давайте разберем подробнее синтаксис команды:

  • -print0 — выводит на экран названия файлов, которые будут удалены;
  • xargs — передает названия файлов в качестве аргументов команде rm;
  • -0 — указывает xargs использовать нулевые символы в качестве разделителей;
  • -I — указывает, что названия файлов должны быть заменены на {} в команде rm.

Используйте переменную GLOBIGNORE

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

Важно: GLOBIGNORE доступна только в оболочке bash.

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

 

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

 

Файлы с расширениями, указанными в переменной GLOBIGNORE, из текущей директории удалены не будут. Теперь Вы можете отключить эту переменную:

 

Читайте также: Как установить или изменить переменную среды $PATH в Linux.

Выводы

В этой статье мы рассказали о том, как Вы можете удалить все файлы из каталога, за исключением указанных, прямо в терминале Linux. Мы разобрали три способа, которые Вы можете использовать для этого. Они существенно сократят затраты времени на выполнение рутинной задачи, как для обычных пользователей, так и для системных администраторов. Желаем Вам успехов в обучении, трудоустройстве и работе!

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Терминал Linux

Метки:

, , , ,

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики

Свежие комментарии

Меню