Удаляем пустые файлы и директории. Linux статьи
Написать статью
Войдите, чтобы писать статьи

Удаляем пустые файлы и директории

3

Рассмотрим, как удалить все пустые файлы или директории в определенной директории. Сделать это очень просто через командную строку, используя команды find, rm и rmdir.

Откройте терминал (командную строку) и перейдите командой cd в ту директорию, в которой вам необходимо удалить пустые файлы:

cd ~/mydir

Удаляем пустые файлы

Выведем список пустых файлов. Для этого выполним команду find и укажем ей, что нам в текущей директории необходимо найти только файлы (параметр -type f) и эти файлы должны быть пустыми (параметр -empty):

find . -type f -empty

Теперь воспользуемся аргументом -exec, который позволяет выполнить определенную команду над списком файлов. Мы укажем, что хотим выполнить команду rm (удалить файл). Итак, чтобы удалить пустые файлы выполните команду:

find . -type f -empty -exec rm {} \;

Удаляем пустые директории

Сначала просто посмотрим, какие директории у нас не содержат файлов. Для этого, так же как и для файлов используем команду find с ключом -empty, но указываем -type d. Выполним в командной строке:

find . -type d -empty

Получим список пустых директорий.

Теперь нам нужно их удалить. Аргументу -exec укажем команду rmdir (удалить директори). Чтобы удалить пустые директории выполняем:

find . -type d -empty -exec rmdir {} \;

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

Дополнительную информацию по команде find вы можете почитать в статье Команда find: широкие возможности для поиска файлов в Linux.

Лайков: +2
войдите, чтобы ставить лайки
3
  • Опубликовано: 09.09.2013

Комментарии

Угу
29.08.2015
04:37
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
find . -type d -empty -exec rmdir '{}' ;
Угу 2
27.05.2017
13:28
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
find . -type d -empty -delete
Угу 3
22.03.2018
10:20
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийУгу 2Родительский комментарий
0
войдите, чтобы ставить лайки
Этот вариант больше понравился. Предыдущий удалял, но и ругался на отсутствие файлов

Написать комментарий

Ваше имя:
Текст комментария:
  • Уважать других.
  • Не ругаться.
  • Без оскорблений.
  • Без грубости.
  • Не переходить на личности.
  • Писать на русском языке.
  • Без политики.
  • Без флуда.
Правила