stat
adalah utilitas baris perintah yang menampilkan informasi terperinci tentang file yang diberikan sebagai argumen atau file sistem.
Artikel ini menjelaskan cara menggunakan perintah stat.
Menggunakan Perintah stat
Sintaks untuk perintah stat
adalah sebagai berikut:
stat [OPTION]... FILE...
stat
menerima satu atau lebih nama input FILE
dan menyertakan sejumlah opsi yang mengontrol perilaku perintah dan output.
Mari kita lihat contoh berikut:
stat file.txt
Outputnya akan terlihat seperti ini:
File: file.txt Size: 4030 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 13633379 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ linuxize) Gid: ( 1000/ linuxize) Access: 2019-11-06 09:52:17.991878701 +0100 Modify: 2019-11-06 09:52:17.971878714 +0100 Change: 2019-11-06 09:52:17.971878714 +0100 Birth: -
Ketika dipanggil tanpa opsi, stat
akan menampilkan informasi dari file sebagai berikut:
- File – Nama dari suatu file.
- Size – Ukuran file dalam byte.
- Blocks – Jumlah blok yang dialokasikan yang diambil file.
- IO Block – Ukuran dalam byte dari setiap blok.
- File type – (misal File biasa, direktori, symbolic link …)
- Device – Nomor perangkat dalam heks dan desimal.
- Inode – Nomor Inode.
- Links – Jumlah hard links.
- Access – File permissions dalam metode numerik dan simbolik
- Uid – User ID dan nama owner.
- Gid – ID grup dan nama owner.
- Context – Konteks keamanan SELinux.
- Access – Terakhir kali file diakses.
- Modify – Terakhir kali konten file diubah.
- Change – Terakhir kali atribut atau isi file diubah.
- Birth – Waktu pembuatan file (tidak didukung di Linux).
Menampilkan Informasi Tentang Sistem File
Untuk mendapatkan informasi tentang file sistem di mana file yang diberikan berada, alih-alih informasi tentang file itu sendiri, gunakan opsi -f, (--file-system
):
stat -f file.txt
Output dari perintah akan terlihat seperti ini:
File: "package.json" ID: 8eb56097b4564d20 Namelen: 255 Type: ext2/ext3 Block size: 4096 Fundamental block size: 4096 Blocks: Total: 61371211 Free: 24595668 Available: 22365251 Inodes: Total: 15645336 Free: 13899610
Ketika stat
dipanggil dengan opsi -f
, stat
akan menunjukkan informasi berikut:
- File – Nama file.
- ID – ID sistem file dalam hex.
- Namelen – Panjang maksimum nama file.
- Fundamental block size – Ukuran setiap blok pada sistem file.
- Blocks:
- Total – Jumlah total blok dalam sistem file.
- Free – Jumlah blok yang tersedia di sistem file.
- Available – Jumlah blok yang tersedia untuk pengguna non-root.
- Inodes:
- Total – Jumlah total inode dalam sistem file.
- Free – Jumlah inode yang tersedia dalam sistem file.
Dereference (Ikuti) Symlinks
Secara default, stat
tidak mengikuti symlink. Jika Anda menjalankan perintah pada symlink, output akan menyertakan informasi tentang symlink, bukan file yang ditunjuknya:
stat /etc/resolv.conf
File: /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf Size: 39 Blocks: 0 IO Block: 4096 symbolic link Device: 801h/2049d Inode: 8122259 Links: 1 Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2019-11-06 21:12:26.834956073 +0100 Modify: 2019-08-14 12:11:48.122354519 +0200 Change: 2019-08-14 12:11:48.122354519 +0200 Birth: -
Untuk melakukan dereferensi (ikuti) symlink dan menampilkan informasi tentang file yang ditunjuk symlink, gunakan opsi -L
, (--dereference
):
stat -L /etc/resolv.conf
File: /etc/resolv.conf Size: 715 Blocks: 8 IO Block: 4096 regular file Device: 17h/23d Inode: 989 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 101/systemd-resolve) Gid: ( 103/systemd-resolve) Access: 2019-11-06 21:12:26.834956073 +0100 Modify: 2019-08-14 12:11:48.122354519 +0200 Change: 2019-08-14 12:11:48.122354519 +0200 Birth: -
Kustomisasi Output
Perintah stat
memiliki dua opsi yang memungkinkan Anda untuk kustomisasi output agar sesuai dengan kebutuhan Anda: -c
, (--format="format"
) dan --printf="format"
.
Perbedaan antara kedua opsi ini adalah ketika dua atau lebih file digunakan sebagai operan --format
secara otomatis menambahkan baris baru setelah setiap output operan. --Printf
mengartikan backslash escapes.
Ada banyak format directives untuk file dan sistem file yang dapat digunakan dengan --format
dan --printf
.
Misalnya, untuk melihat hanya tipe file yang akan Anda gunakan:
stat --format="%F" /dev/null
character special file
Anda dapat menggabungkan sejumlah arahan pemformatan dan secara opsional menggunakan pemisah kustom di antaranya. Pemisah dapat berupa karakter tunggal atau string:
stat --format="%n,%F" /dev/null
/dev/null,character special file
Untuk menafsirkan karakter khusus seperti baris atau tab baru, gunakan opsi --printf
:
stat --printf='Name: %n\nPermissions: %a\n' /etc
\n
mencetak baris baru:
Name: /etc Permissions: 755
Stat
juga dapat menampilkan informasi dalam bentuk singkat. Format ini berguna untuk parsing oleh utilitas lain.
Aktifkan perintah dengan opsi -t
(--terse
) untuk mencetak output dalam bentuk singkat:
stat -t /etc
/etc 12288 24 41ed 0 0 801 8134465 147 0 0 1543063333 1543063333 1543063333 0 4096
Untuk daftar lengkap semua directive format untuk file dan sistem file, ketikkan man stat
atau stat --help
di terminal distribusi Linux Anda.
Kesimpulan
Perintah stat mencetak informasi tentang file yang diberikan dan sistem secara mendetail.
Di Linux, ada beberapa perintah lain yang dapat menampilkan informasi tentang file yang diberikan, dengan ls
yang paling banyak digunakan, tetapi hanya memperlihatkan sebagian informasi dan tidak selengkap seperti yang disediakan oleh perintah stat
.