Почему Linux GNU не находит -size match du или ls -l?

Работая сегодня в среде UNIX через SSH, моя группа наткнулась на кажущуюся особенность GNU findutils, связанную с флагом -size.

Когда я запускаю команду ls -l, она сообщает, что размер файла составляет 155 байт. Но выполнение команды find ~/ -size -1K не дает результатов. Он соответствует только файлу ровно 1к.

Кроме того, я знаю, что он не использует результат du для поиска файлов, потому что du возвращает 4k для того же файла. Что дает? Кажется, что память предоставляется в 4k "кусочках", если du ​​должна быть доверенной, и что ls -l находит "истинный" размер файла, но find дает радикально отличные результаты, чем ожидалось. Любая помощь будет принята с благодарностью, и я уверен, что это помогало другим в прошлом, но я не могу нигде найти результат.

Спасибо!

1 ответ

Согласно этой странице руководства заглавная K суффикс по размерам не поддерживается. Используйте строчные буквы k за килобайты. Вы, вероятно, получили 1 что эквивалентно 1bодин 512-байтовый блок. Это должно включать 155-байтовый файл, конечно, так что это немного сбивает с толку.

Другие вопросы по тегам