2013-04-14 3 views
2

Я пытаюсь удалить все файлы в определенном каталоге с определенным размером, в данном случае 39 бит точно. Я знаю, что приведенный ниже код удалит все файлы, которые являются 0 бит.Удалить файлы внутри каталога по размеру с помощью Cron Jobs

find /home/.../...* -size 0 -type f -exec rm -f '{}' \; 

Так что же мне нужно сделать, чтобы оно работало для 39-битных файлов? Следующий cron не работает.

find /home/.../...* -size 39 -type f -exec rm -f '{}' \; 

ответ

1

Есть ли причина, по которой вы используете rm вместо собственного собственного удаления?

find /home/.../...* -size 39c -type f -delete 

Ключ, почему он не работает, хотя ей, что размер первичного занимает параметр как количество 512K блоков и округляет размер файла, чтобы встретить, что, таким образом 39 на самом деле означает размер файла между 14,337 и 19 968 байт. Чтобы указать размер для соответствия в байтах, вам необходимо добавить суффикс c (для символов).

Если вы должны использовать ете, хотя и окончив команду с +, а не \; является более эффективным, так как это партия соответствия имен файлов вместе (например, с помощью xargs), чтобы уменьшить количество раз, ему нужно позвонить ют.