wc -c < filename
(zkratka pro počet slov, -c
vytiskne počet bajtů) je přenosné řešení POSIX. Pouze výstupní formát nemusí být jednotný napříč platformami, protože některé mezery mohou být předřazeny (což je případ Solaris).
Nevynechejte přesměrování vstupu. Když je soubor předán jako argument, název souboru se vytiskne po počtu bajtů.
Bál jsem se, že to nebude fungovat pro binární soubory, ale funguje to OK na Linuxu i Solarisu. Můžete to zkusit s wc -c < /usr/bin/wc
. Navíc je zaručeno, že nástroje POSIX zpracují binární soubory, pokud není výslovně uvedeno jinak.
Nakonec jsem napsal svůj vlastní program (opravdu malý), aby zobrazoval pouze velikost. Více informací zde:http://fwhacking.blogspot.com/2011/03/bfsize-print-file-size-in-bytes-and.html
Dva nejčistší způsoby podle mého názoru s běžnými nástroji Linuxu jsou:
$ stat -c %s /usr/bin/stat
50000
$ wc -c < /usr/bin/wc
36912
Ale já prostě nechci psát parametry nebo rouru výstup jen proto, abych získal velikost souboru, takže používám vlastní bfsize.
I když du
obvykle vypisuje využití disku a ne skutečnou velikost dat, GNU coreutils du
může vytisknout "zdánlivou velikost" souboru v bajtech:
du -b FILE
Ale nebude to fungovat pod BSD, Solaris, macOS, ...