80

У меня есть папка со многими подпапками, содержащими небольшие файлы TIF (менее 160 КБ), которые были объединены в большие PDF-файлы вместе с некоторыми большими многостраничными TIF-файлами.

Я хочу удалить все небольшие файлы TIF, не удаляя файлы большего размера (TIF или PDF) и сохраняя структуру каталогов. Как мне это сделать в Linux с помощью командной строки?

1 ответ1

139
find . -name "*.tif" -size -160k -delete

Сначала запустите команду без -delete чтобы убедиться, что найдены правильные файлы.

Обратите внимание - до 160k . Всего 160k означает ровно 160 килобайт. -160k означает меньше 160 килобайт. +160k означает более 160 килобайт.

Если вы хотите отфильтровать размер в байтах (как 160 байтов вместо 160 килобайт), вы должны записать его следующим образом: 160c . Если вы просто напишите 160 это будет интерпретировано как 160 * 512 байт. Это странное требование POSIX. Подробнее читайте здесь: https://unix.stackexchange.com/questions/259208/purpose-of-find-commands-default-size-unit-512-bytes

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .