Я знаю, что могу использовать, ls -lat
чтобы узнать, сколько байтов имеет файл, а затем умножить на 8, чтобы узнать, сколько битов. Но возможно ли это только в одной командной строке?
bash
shell
command-line
filesystems
files
Фелипе
источник
источник
Ответы:
С GNU
du
:источник
bc
-awk
может сделать математику сам:du -b FILE | awk '{print $1 * 8}
wc -c < FILE
для переносимого эквивалента (для нерегулярных файлов, это имеет побочный эффект чтения их)Решение shell + GNU coreutils:
-c%s
Опцияstat
возвращает только размер файла в байтах, исключая любую необходимость в дополнительной обработке текста. Этот синтаксис поддерживается GNU coreutils и поэтому должен работать в большинстве дистрибутивов Linux.В качестве исключения в Linux, если вы запускаете zsh с необязательным модулем zsh / stat, нужно указать путь для получения GNU coreutils:
источник
С GNU
find
(предшествует GNUstat
десятилетиями):Относительно переносимо:
источник
Это возможно в одной строке, потому что вы можете поместить несколько команд в одну строку, например, связанных трубами или подстановками команд:
(Спасибо @frostschutz за обновление).
источник
ZSize: 5
например,stat -c %s FILE
печати размера, а неsed
?Отдельный файл:
Mutiple файлы:
Этот также работает для одного файла. Это не полностью пуленепробиваемый, хотя, см. Комментарий Стефана .
Это стандартные команды POSIX.
источник
a b
файл какa b
(последовательности пробелов, преобразованные в один пробел, удаленные пробелы удалены).NR == 1