Почему 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-байтовый файл, конечно, так что это немного сбивает с толку.