-
bzip2 „$fișier”
Aceasta va rula bzip2
pe numele fișierului salvat într-o variabilă „$file”. bzip2
va comprima fișierul într-un fișier nou numit $file.bz2
.
-
stat -c %s „$file.bz2”
Aceasta rulează stat
pe compresa nou creată $file.bz2
:
Din om stat
:
stat - afișează starea fișierului sau a sistemului de fișiere
-c --format=FORMAT
utilizați FORMATUL specificat în loc de cel implicit
%s dimensiune totală, în octeți
Deci asta stat
comanda va returna dimensiunea fișierului în octeți a noului fișier.
-
$(some_command)
Aceasta se numește înlocuirea comenzii
Bash efectuează extinderea executând comanda într-un mediu subshell și înlocuind înlocuirea comenzii cu ieșirea standard a comenzii.
Asa de, var=$(some_command)
salvează ieșire de some_command într-o variabilă var
.
In total:
compress_size_bzip2=$(bzip2 „$fișier” ; stat -c %s „$fișier.bz2”)
Aceasta rulează bzip2
și stat
într-un subshell. Ieșirea subshell-ului este dimensiunea fișierului comprimat în octeți, care va fi salvat într-o variabilă $compress_size_bzip2
.
Cu toate acestea, există loc de îmbunătățire:
Ar trebui să combinați comenzile din subshell cu &&
, asa de stat
rulează doar când bzip2
a avut succes.
Dacă nu aveți nevoie de un fișier comprimat, ar trebui să spuneți bzip2
pentru a comprima la ieșire standard cu -c
steag și folosiți wc -c
pentru a-i spune dimensiunea:
compress_size_bzip2=$(bzip2 -c „$fișier” | wc -c)