GNU/Linux >> Belajar Linux >  >> Linux

Cara portabel untuk mendapatkan ukuran file (dalam byte) di shell?

wc -c < filename (kependekan dari jumlah kata, -c mencetak jumlah byte) adalah solusi POSIX portabel. Hanya format keluaran yang mungkin tidak seragam di seluruh platform karena beberapa spasi mungkin diawali (yang berlaku untuk Solaris).

Jangan abaikan pengalihan input. Saat file diteruskan sebagai argumen, nama file dicetak setelah hitungan byte.

Saya khawatir ini tidak akan berfungsi untuk file biner, tetapi berfungsi dengan baik di Linux dan Solaris. Anda dapat mencobanya dengan wc -c < /usr/bin/wc . Selain itu, utilitas POSIX dijamin untuk menangani file biner, kecuali ditentukan lain secara eksplisit.


Saya akhirnya menulis program saya sendiri (sangat kecil) untuk menampilkan ukurannya saja. Informasi lebih lanjut di sini:http://fwhacking.blogspot.com/2011/03/bfsize-print-file-size-in-bytes-and.html

Dua cara paling bersih menurut saya dengan alat Linux yang umum adalah:

$ stat -c %s /usr/bin/stat
50000

$ wc -c < /usr/bin/wc
36912

Tapi saya hanya tidak ingin mengetik parameter atau mem-pipe output hanya untuk mendapatkan ukuran file, jadi saya menggunakan bfsize saya sendiri.


Meskipun du biasanya mencetak penggunaan disk dan bukan ukuran data sebenarnya, GNU coreutils du dapat mencetak "ukuran nyata" file dalam byte:

du -b FILE

Tapi itu tidak akan berfungsi di bawah BSD, Solaris, macOS, ...


Linux
  1. Cara Menemukan Semua File dengan Ukuran File Nol (0) Bytes di Direktori Secara Rekursif

  2. Dapatkan waktu eksekusi program di shell

  3. Dapatkan baris tertentu dari file teks hanya dengan menggunakan skrip shell

  1. Dapatkan Usia File yang Diberikan?

  2. Bagaimana cara mendapatkan ukuran fisik file di Linux?

  3. Dapatkan ukuran file total dari file yang berisi daftar file

  1. Deskriptor File &Skrip Shell?

  2. Linux – Cara Portabel Untuk Mendapatkan Alamat Sumber Rute Default?

  3. Dapatkan File Dibuat/Waktu pembuatan??