Cara Mendapatkan Ukuran File atau Direktori di Linux

Fatmawati Achmad Zaenuri/Shutterstock

Ketika Anda menggunakan perintah Linux du, Anda mendapatkan penggunaan disk yang sebenarnya dan ukuran sebenarnya dari file atau direktori. Kami akan menjelaskan mengapa nilai-nilai ini tidak sama. Penggunaan Disk Aktual dan Ukuran Sebenarnya

Ukuran file dan ruang yang ditempatinya pada hard drive Anda jarang sama. Ruang disk dialokasikan dalam blok. Jika file lebih kecil dari blok, seluruh blok masih dialokasikan untuk itu karena sistem file tidak memiliki unit real estat yang lebih kecil untuk digunakan.

Kecuali ukuran file adalah kelipatan blok yang tepat, ruang yang digunakannya pada hard drive harus selalu dibulatkan ke seluruh blok berikutnya. Misalnya, jika file lebih besar dari dua blok tetapi lebih kecil dari tiga, masih dibutuhkan tiga blok ruang untuk menyimpannya.

Dua pengukuran digunakan dalam kaitannya dengan ukuran file. Yang pertama adalah ukuran sebenarnya dari file, yang merupakan jumlah byte konten yang membentuk file. Yang kedua adalah ukuran efektif file pada hard disk. Ini adalah jumlah blok sistem file yang diperlukan untuk menyimpan file itu. Contoh

Mari kita lihat contoh sederhana. Kami akan mengarahkan satu karakter ke dalam file untuk membuat file kecil:gema "1" geek >.txt

Sekarang, kita akan menggunakan daftar format panjang, ls, untuk melihat panjang file:ls -l geek.txt

Panjang adalah nilai numerik yang mengikuti entri dave dave, yaitu dua byte. Mengapa dua byte ketika kita hanya mengirim satu karakter ke file? Mari kita lihat apa yang terjadi di dalam file.

Kami akan menggunakan perintah hexdump, yang akan memberi kami jumlah byte yang tepat dan memungkinkan kami untuk "melihat" karakter yang tidak dicetak sebagai nilai heksadesimal. Kami juga akan menggunakan opsi -C (canonical) untuk memaksa output untuk menunjukkan nilai heksadesimal dalam tubuh output, serta setara karakter alfanumerik mereka:hexdump -C geek.txt

Output menunjukkan kepada kita bahwa, mulai dari offset 00000000 dalam file, ada byte yang berisi nilai heksadesimal 31, dan yang berisi nilai heksadesimal 0A. Bagian kanan output menggambarkan nilai-nilai ini sebagai karakter alfanumerik, sedapat mungkin.

Nilai heksadesimal 31 digunakan untuk mewakili digit satu. Nilai heksadesimal 0A digunakan untuk mewakili karakter Line Feed, yang tidak dapat ditampilkan sebagai karakter alfanumerik, sehingga ditampilkan sebagai periode (.) sebagai gantinya. Karakter Line Feed ditambahkan oleh echo . Secara default, echostarts baris baru setelah menampilkan teks yang perlu ditulis ke jendela terminal.

Itu menghitung dengan output dari ls dan setuju dengan panjang file dua byte.

Terkait: Cara Menggunakan Perintah ls untuk Mencantumkan File dan Direktori di Linux

Sekarang, kita akan menggunakan perintah du untuk melihat ukuran file:du geek.txt

Dikatakan ukurannya empat, tapi empat dari apa? Ada Blok, dan Kemudian Ada Blok

Ketika du melaporkan ukuran file dalam blok, ukuran yang digunakannya tergantung pada beberapa faktor. Anda dapat menentukan ukuran blok mana yang harus digunakan pada baris perintah. Jika Anda tidak memaksa du untuk menggunakan ukuran blok tertentu, itu mengikuti seperangkat aturan untuk memutuskan mana yang akan digunakan.

Pertama, ia memeriksa variabel lingkungan berikut:DU_BLOCK_SIZEBLOCK_SIZEBLOCKSIZE

Jika salah satu dari ini ada, ukuran blok diatur, dan du berhenti memeriksa. Jika tidak ada yang diatur, du default ke ukuran blok 1.024 byte. Kecuali, yaitu, variabel lingkungan yang disebut POSIXLY_CORRECT diatur. Jika itu masalahnya, du default ke ukuran blok 512 byte.

Jadi, bagaimana kita bisa mengetahui mana yang digunakan? Anda dapat memeriksa setiap variabel lingkungan untuk menyelesaikannya, tetapi ada cara yang lebih cepat. Mari kita bandingkan hasilnya dengan ukuran blok yang digunakan sistem file sebagai gantinya.

Untuk menemukan ukuran blok yang digunakan sistem file, kita akan menggunakan program tune2fs. Kami kemudian akan menggunakan opsi -l (list superblock), pipa output melalui grep, dan kemudian mencetak baris yang berisi kata "Block."

Dalam contoh ini, kita akan melihat sistem file pada partisi pertama dari hard drive pertama, sda1, dan kita harus menggunakan sudo:

Next Post Previous Post
No Comment
Add Comment
comment url
Related Post
debian