Назад | Перейти на главную страницу

Отчет о размере файла команды stat на busybox

Я пытаюсь написать сценарий оболочки в busybox, чтобы проверить размер файла. Прочитав, что stat более надежен, чем ls, я решил использовать его, но каким-то образом при использовании следующей команды:

stat -c %s filename

Я получаю следующий результат: 559795. Это касается следующих 2 файлов (показано с помощью ls -la):

0 Jan 20 16:32 foo_empty
4 Jan 20 16:32 foo_not_empty

Кто-нибудь знает, что там происходит? Я могу просто вернуться к использованию ls, но я не понимаю, что здесь происходит, и это меня беспокоит ...

если stat сообщает одно и то же нечетное число для размера файла, количества блоков, inode и устройства. Я подозреваю повреждение файловой системы. Вы можете попробовать fsck и посмотреть, найдет ли он / исправит проблемы.

Работает для меня:

ls -l foo_*
-rw------- 1 fooo users    0 Jan 20 10:30 foo_empty
-rw------- 1 fooo users 3767 Jan 20 10:30 foo_not_empty

busybox stat -c %s foo_empty; busybox stat -c %s foo_not_empty 
0
3767

Вы используете старую версию busybox, возможно, в 64-битной ОС? я использую

BusyBox v1.19.3 (2012-01-03 13:39:53 PST) multi-call binary.

Вы также можете использовать du чтобы проверить размер файла. du -h предоставит вам "читаемый человеком" вывод.