Как найти разреженные файлы в терминале

find -type f -printf "%S=:=%p\n" 2>/dev/null | gawk -F'=:=' '{if ($1 < 1.0) print $1,$2}'


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

1. find -type f — ищет только обычные файлы (исключая директории и символические ссылки).

2. -printf "%S=:=%p\n" — для каждого найденного файла выводит его размер (%S) и путь (%p), разделенные строкой =:=.

3. 2>/dev/null — перенаправляет сообщения об ошибках на устройство /dev/null (игнорирует их).

4. | gawk -F'=:=' '{if ($1 < 1.0) print $1,$2}' — передает вывод команды find в команду gawk, разбивая строки на поля с помощью разделителя =:=. Затем, если первое поле (размер файла) меньше 1.0, выводит его и второе поле (путь к файлу).

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

Ответить

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