Ukuran sebenarnya dari sebuah file, yang merupakan jumlah byte yang membentuk file tersebut, dan ukuran efektif pada hard disk, yang merupakan jumlah blok sistem file yang diperlukan untuk menyimpannya, berbeda karena alokasi ruang disk dalam blok. Perintah du dapat digunakan untuk memeriksa ukuran file, direktori, dan total ruang disk yang digunakan oleh direktori dan subdirektori saat ini. Jalankan “du -h” untuk melihat daftar file dan folder dalam format yang dapat dibaca manusia.
Saat Anda menggunakan perintah Linux du, Anda mendapatkan penggunaan disk sebenarnya dan ukuran sebenarnya dari file atau direktori. Kami akan menjelaskan mengapa nilai-nilai ini tidak sama.
Mengapa Penggunaan Disk Sebenarnya dan Ukuran Sebenarnya Berbeda?
Ukuran file dan ruang yang ditempati di hard drive Anda jarang sekali sama. Ruang disk dialokasikan dalam blok. Jika file lebih kecil dari satu blok, seluruh blok masih dialokasikan padanya karena sistem file tidak memiliki unit real estat yang lebih kecil untuk digunakan.
Kecuali ukuran file adalah kelipatan blok, ruang yang digunakan hard drive harus selalu dibulatkan ke seluruh blok berikutnya. Misalnya, jika sebuah file lebih besar dari dua blok tetapi lebih kecil dari tiga, masih diperlukan tiga blok ruang untuk menyimpannya.
Dua pengukuran digunakan sehubungan dengan ukuran file. Yang pertama adalah ukuran file sebenarnya, yaitu jumlah byte konten yang membentuk file tersebut. Yang kedua adalah ukuran efektif file di hard disk. Ini adalah jumlah blok sistem file yang diperlukan untuk menyimpan file tersebut.
Cara Memeriksa Ukuran File
Mari kita lihat contoh sederhana. Kami akan mengarahkan satu karakter ke dalam file untuk membuat file kecil:
echo "1" > geek.txt
Sekarang, kami akan menggunakan daftar format panjang, ls, untuk melihat panjang file:
ls -l geek.txt
The length adalah nilai numerik yang mengikuti entri dave dave, yaitu dua byte. Mengapa dua byte padahal kami hanya mengirim satu karakter ke file? Mari kita lihat apa yang terjadi di dalam file.
Kita akan menggunakan perintah hexdump, yang akan memberi kita jumlah byte yang tepat dan memungkinkan kita untuk “melihat” karakter non-cetak sebagai nilai heksadesimal. Kami juga akan menggunakan opsi -C (kanonik) untuk memaksa output menampilkan nilai heksadesimal di isi output, serta karakter alfanumeriknya yang setara:
hexdump -C geek.txt
Output menunjukkan kepada kita bahwa, dimulai pada offset 00000000 dalam file tersebut, ada satu byte yang berisi nilai heksadesimal 31, dan satu byte berisi nilai heksadesimal 0A. Bagian sebelah kanan dari keluaran menggambarkan nilai-nilai ini sebagai karakter alfanumerik, jika memungkinkan. Nbsp
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 titik (.). Karakter Line Feed ditambahkan oleh echo . Secara default, echo memulai baris baru setelah menampilkan teks yang perlu ditulis ke jendela terminal.
Itu sesuai dengan output dari ls dan sesuai dengan panjang file dua byte.
Sekarang, kita akan menggunakan perintah du untuk melihat ukuran file:
du geek.txt
Dikatakan ukurannya empat, tapi empat apa?
Ada Blok, lalu Ada Blok
Ketika du melaporkan ukuran file dalam blok, ukuran yang digunakannya bergantung 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, ia mengikuti serangkaian aturan untuk memutuskan mana yang akan digunakan.
Pertama, ia memeriksa variabel lingkungan berikut:
DU_BLOCK_SIZE BLOCK_SIZE BLOCKSIZE
Jika salah satu dari ini ada, ukuran blok disetel , dan du berhenti memeriksa. Jika tidak ada yang disetel, du defaultnya adalah ukuran blok 1.024 byte. Kecuali jika variabel lingkungan bernama POSIXLY_CORRECT disetel. Jika demikian, defaultnya adalah ukuran blok 512 byte.
Jadi, bagaimana kita mengetahui mana yang sedang digunakan? Anda dapat memeriksa setiap variabel lingkungan untuk menyelesaikannya, tapi ada cara yang lebih cepat. Mari kita bandingkan hasilnya dengan ukuran blok yang digunakan sistem file.
Untuk mengetahui ukuran blok yang digunakan sistem file, kita akan menggunakan program tune2fs. Kami kemudian akan menggunakan opsi -l (daftar superblock), menyalurkan 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:
sudo tune2fs -l /dev/sda1 | grep Block
Ukuran blok sistem file adalah 4.096 byte. Jika kita membaginya dengan hasil yang kita peroleh dari du (empat), maka terlihat ukuran blok default du adalah 1.024 byte. Sekarang kita mengetahui beberapa hal penting.
Pertama, kita mengetahui jumlah terkecil real estat sistem file yang dapat dikhususkan untuk menyimpan file adalah 4.096 byte. Ini berarti bahkan file kecil berukuran dua byte menghabiskan 4 KB ruang hard drive.
Hal kedua yang perlu diingat adalah aplikasi yang didedikasikan untuk melaporkan statistik hard drive dan sistem file, seperti du, ls, dan tune2fs, dapat memiliki pengertian yang berbeda tentang apa arti “blok”. Aplikasi tune2fs melaporkan ukuran blok sistem file yang sebenarnya, sedangkan ls dan du dapat dikonfigurasi atau dipaksa untuk menggunakan ukuran blok lainnya. Ukuran blok tersebut tidak dimaksudkan untuk berhubungan dengan ukuran blok sistem file; itu hanyalah “potongan” yang digunakan perintah tersebut dalam outputnya.
Terakhir, selain menggunakan ukuran blok yang berbeda, jawaban dari du dan tune2fs menyampaikan arti yang sama. Hasil tune2fs adalah satu blok 4.096 byte, dan hasil du adalah empat blok 1.024 byte.
Menggunakan du untuk Memeriksa Ukuran File
Tanpa parameter atau opsi baris perintah, du mencantumkan total ruang disk yang digunakan direktori saat ini dan semua subdirektori.
Mari kita lihat contohnya:
du
Ukuran dilaporkan dalam ukuran blok default 1.024 byte per blok. Seluruh pohon subdirektori dilalui.
Menggunakan du pada Direktori Berbeda
Jika Anda ingin du melaporkan direktori yang berbeda dari yang sekarang, Anda dapat meneruskan jalur ke direktori pada baris perintah:
du ~/.cach/evolution/
Using du pada File Tertentu
Jika Anda ingin du melaporkan file tertentu, berikan jalur ke file itu di baris perintah. Anda juga dapat meneruskan pola shell ke sekelompok file tertentu, seperti *.txt:
du ~/.bash_aliases
Reporting on Files in Directories
Untuk meminta Anda melaporkan file di direktori dan subdirektori saat ini, gunakan -a (all files) opsi:
du -a
Untuk setiap direktori, ukuran setiap file dilaporkan, serta total untuk setiap direktori.
Membatasi Kedalaman Pohon Direktori
Anda dapat meminta du untuk membuat daftar pohon direktori hingga kedalaman tertentu. Untuk melakukannya, gunakan opsi -d (kedalaman maksimal) dan berikan nilai kedalaman sebagai parameter. Perhatikan bahwa semua subdirektori dipindai dan digunakan untuk menghitung total yang dilaporkan, namun tidak semuanya terdaftar. Untuk mengatur kedalaman direktori maksimum satu tingkat, gunakan perintah ini:
du -d 1
Outputnya mencantumkan ukuran total subdirektori tersebut di direktori saat ini dan juga memberikan total untuk masing-masing subdirektori.
Untuk membuat daftar direktori satu tingkat lebih dalam, gunakan perintah ini:
du -d 2
Mengatur Ukuran Blok
Anda dapat menggunakan opsi blok untuk mengatur ukuran blok untuk operasi saat ini. Untuk menggunakan ukuran blok satu byte, gunakan perintah berikut untuk mendapatkan ukuran direktori dan file yang tepat:
du –block=1
Jika Anda ingin menggunakan ukuran blok satu megabyte, Anda dapat menggunakan -m (megabyte) opsi, yang sama dengan –block=1M:
du -m
Jika Anda ingin ukuran yang dilaporkan dalam ukuran blok yang paling sesuai sesuai dengan ruang disk yang digunakan oleh direktori dan file, gunakan opsi -h (dapat dibaca manusia):
du -h
Untuk melihat ukuran file yang tampak, bukan jumlah ruang hard drive yang digunakan untuk menyimpan file, gunakan opsi –apparent-size:
du –apparent-size
Anda dapat menggabungkannya dengan opsi -a (semua) untuk melihat ukuran nyata dari setiap file:
du –apparent-size -a
Setiap file terdaftar, beserta ukuran yang terlihat.
Menampilkan Total Saja
Jika Anda ingin melaporkan total total direktori saja, gunakan -s (meringkas) pilihan. Anda juga dapat menggabungkan ini dengan opsi lain, seperti opsi -h (dapat dibaca manusia):
du -h -s
Di sini, kami akan menggunakannya dengan opsi –apparent-size:
du –apparent-size -s
Displaying Modification Times
Untuk melihat waktu dan tanggal pembuatan atau modifikasi terakhir, gunakan opsi –time:
du –time -d 2
Hasil Aneh?
Jika Anda melihat hasil yang aneh dari du , terutama ketika Anda melakukan referensi silang ukuran ke output dari perintah lain, biasanya ini disebabkan oleh perbedaan ukuran blok yang dapat diatur oleh perintah berbeda atau yang defaultnya. Hal ini juga bisa disebabkan oleh perbedaan antara ukuran file sebenarnya dan ruang disk yang diperlukan untuk menyimpannya.
Jika Anda perlu mencocokkan output dari perintah lain, bereksperimenlah dengan opsi –block di du.
Linux Commands
Files
tar·pv·cat·tac ·chmod·grep·diff·sed·ar·man·pushd·popd·fsck·testdisk·seq·fd·pandoc·cd·$PATH·awk·join·jq·fold·uniq·journalctl·tail·stat·ls· fstab·echo·less·chgrp·chown·rev·look·strings·type·rename·zip·unzip·mount·umount·install·fdisk·mkfs·rm·rmdir·rsync·df·gpg·vi·nano·mkdir· du·ln·patch·convert·rclone·shred·srm·scp·gzip·chattr·cut·find·umask·wc· tr
Processes
alias·screen·top·nice·renice·progress·strace·systemd·tmux·chsh·history· di·batch·gratis·yang·dmesg·chfn·usermod·ps·chroot·xargs·tty·pinky·lsof·vmstat·timeout·wall·yes·kill·sleep·sudo·su·time·groupadd·usermod·groups· lshw·shutdown·reboot·halt·poweroff·passwd·lscpu·crontab·date·bg·fg·pidof·nohup·pmap
Networking
netstat·ping·traceroute·ip·ss·whois·fail2ban·bmon·dig·finger·nmap·ftp· curl·wget·siapa·whoami·w·iptables·ssh-keygen·ufw·arping·firewalld