GNU/Linux >> Belajar Linux >  >> Linux

apa perintah yang paling dapat diandalkan untuk menemukan ukuran sebenarnya dari file linux

Tidak ada masalah ketidakakuratan atau keandalan di sini, Anda hanya membandingkan dua angka berbeda:ukuran logis vs ukuran fisik.

Berikut ilustrasi Wikipedia untuk file jarang:

ls menunjukkan area abu-abu+hijau, panjang logis dari file. du (tanpa --apparent-size ) hanya menampilkan area hijau, karena area tersebut yang menempati ruang.

Anda dapat membuat file renggang dengan dd count=0 bs=1M seek=100 of=myfile .

ls menunjukkan 100MiB karena itulah panjang file:

$ ls -lh myfile
-rw-r----- 1 me me 100M Jul 15 10:57 myfile

du menunjukkan 0, karena itulah jumlah data yang dialokasikan:

$ du myfile
0 myfile

ls -l --block-size=M

akan memberi Anda daftar format panjang (diperlukan untuk benar-benar melihat ukuran file) dan membulatkan ukuran file hingga MiB terdekat .

Jika Anda ingin MB (10^6 byte) daripada MiB (2^20 byte) unit, gunakan --block-size=MB sebagai gantinya.

Jika Anda tidak menginginkan M akhiran yang dilampirkan pada ukuran file, Anda dapat menggunakan sesuatu seperti --block-size=1M . Terima kasih Stéphane Chazelas karena menyarankan ini.

Ini dijelaskan di halaman manual untuk ls; man ls dan cari SIZE . Itu memungkinkan untuk unit selain MB/MiB juga, dan dari tampilannya (saya tidak mencobanya) ukuran blok arbitrer juga (sehingga Anda dapat melihat ukuran file sebagai jumlah blok 412 byte, jika Anda mau).

Perhatikan bahwa --block-size parameter adalah ekstensi GNU di atas ls Grup Terbuka , jadi ini mungkin tidak berfungsi jika Anda tidak memiliki userland GNU (yang dimiliki sebagian besar instalasi Linux). ls dari GNU coreutils 8.5 mendukung --block-size seperti dijelaskan di atas.


Ada beberapa pengertian tentang ukuran file, seperti yang dijelaskan dalam jawaban guiy lain itu dan gambar halaman wiki pada file jarang.

Namun, Anda mungkin ingin menggunakan perintah ls(1) &stat(1).

Jika membuat kode dalam C, pertimbangkan untuk menggunakan syscall stat(2) &lseek(2).

Lihat juga referensi dalam jawaban ini.


Linux
  1. Apa perbedaan antara perintah locate dan find di Linux?

  2. Apa unit ukuran default di linux ls -l perintah

  3. Apa perintah untuk menemukan prioritas proses di Linux?

  1. Temukan file dan direktori di Linux dengan perintah find

  2. Cara Menggunakan Perintah Tar di Linux

  3. Apa perintah untuk menyalin, membaca, dan menghapus file di linux

  1. Contoh Penting dari Perintah File di Linux

  2. Apa tujuan dari file .bashrc di Linux?

  3. Apa yang setara dengan perintah File Linux untuk windows?