Saya tahu saya dapat menggunakan ls -lat
untuk mengetahui berapa banyak byte yang memiliki file dan kemudian kalikan dengan 8 untuk mengetahui berapa banyak bit. Tetapi apakah ini mungkin hanya dalam satu baris perintah?
bash
shell
command-line
filesystems
files
Felipe
sumber
sumber
Jawaban:
Dengan GNU
du
:sumber
bc
-awk
bisa melakukan matematika sendiri:du -b FILE | awk '{print $1 * 8}
wc -c < FILE
untuk padanan portabel (untuk file non-reguler, meskipun memiliki efek samping membacanya)Solusi shell + GNU coreutils:
The
-c%s
pilihan untukstat
kembali hanya ukuran file dalam byte, menghilangkan kebutuhan untuk pengolahan teks tambahan. Sintaks ini didukung oleh GNU coreutils dan karenanya harus bekerja di bawah sebagian besar distribusi linux.Sebagai pengecualian di linux, jika seseorang menjalankan zsh dengan modul zsh / stat opsional, maka seseorang harus menentukan jalur untuk mendapatkan GNU coreutils:
sumber
Dengan GNU
find
(mendahului GNUstat
oleh dekade):Relatif portable:
sumber
Hal ini dimungkinkan dalam satu baris, karena Anda dapat menempatkan beberapa perintah pada satu baris, misalnya terhubung dengan pipa atau penggantian perintah:
(Terima kasih @ Frostschutz untuk pembaruan).
sumber
ZSize: 5
misalnyastat -c %s FILE
dengan mencetak ukuran secara langsung, bukansed
?File tunggal:
File mutiple:
Yang ini juga berfungsi untuk satu file. Ini tidak sepenuhnya anti peluru, lihat komentar Stephane .
Ini adalah perintah yang memenuhi standar POSIX.
sumber
a b
file sebagaia b
(urutan kosong dikonversi ke satu ruang, trailing blank dihapus).NR == 1