Dosya sistemindeki her dosya ve klasör, bu nesnenin meta verilerinin depolandığı Inode yapısı olarak adlandırılan bir yapıya sahiptir. Sahip, sahip grubu, değişiklik zamanı, oluşturma ve dosyaya erişimin yanı sıra diğer bilgileri de saklar. Sadece dosya sistemi hata ayıklama araçlarının yardımıyla görülemez. Bazı bilgiler ls
yardımcı programı tarafından gösterilir, ancak daha fazlasına ihtiyacınız varsa stat
komutunu kullanabilirsiniz. Şimdi size bu komutu Linux'ta nasıl kullanacağınızı anlatacağız.
Komutun sözdizimi basittir. Seçeneklerin ve bilgileri görmek istediğiniz dosyanın yolunun iletilmesi gerekir:
$ stat [options] /path/to/file
Seçenekleri geçmek gerekli değildir ve çok fazla seçenek de yoktur:
-L, dereference
- sembolik bağlantı yerine dosya bilgilerini gösterir;
-f, --file-system
- dosyanın bulunduğu dosya sistemi hakkında bilgi gösterir;
-c, --format -
standart format yerine çıktı formatını belirlemenizi sağlar, her dosyanın çıktısı yeni bir satırdan alınır;
--printf
- --format
'a benzer, sadece yeni bir satır için kullanmalısınız ;
-t, --terse -
bilgileri çok kısa bir biçimde, tek bir satırda gösterir;
--version
- yardımcı programın sürümünü gösterir.
Şimdi bazı kullanım örneklerini görelim. Bir dosya hakkında bilgi görmek için, programa dosyanın yolunu (örneğin /etc/passwd
) vererek seçenekler olmadan çalıştırmak yeterlidir:
$ stat /etc/passwd
Program çıktısı:
Dosya
- bilgilerin gösterildiği dosyanın yolu;
Boyut
- dosyanın bayt cinsinden boyutu;
IO
Bloğu - dosya sistemi bloğunun bayt cinsinden boyutu;
Bloklar
- dosya tarafından işgal edilen dosya sistemi bloklarının sayısı;
Aygıt
- dosyanın kaydedildiği aygıtın, örneğin HDD'nin tanımlayıcısı;
Inode - bu dosyanın benzersiz Inode numarası;
Bağlantılar
- bu dosyaya olan sabit bağlantıların sayısı;
Erişim -
dosyayaerişim
hakları;
Uid
- dosyanın kullanıcı sahibinin tanımlayıcısı ve adı;
Gid
- dosya grubunun tanımlayıcısı ve adı;
Erişim
- dosyaya son erişim zamanı;
Değiştir
- dosyanın içeriğinin en son değiştirildiği zaman;
Değiştirildi
- dosya özniteliklerinin veya dosya içeriğinin en son değiştirildiği zaman;
Oluşturuldu(Doğum
) - dosyanın orijinal oluşturulma tarihini görüntülemek için ayrılmıştır, ancak henüz uygulanmamıştır.
Zaman formatı hakkında biraz daha konuşmamız gerekiyor. Örneğin, dosyaya son erişim zamanı 2020-12-02 18:25:01.043831739 +0200. Bu zaman, saat dilimi dikkate alınarak gösterilir. Ve +0200 sayıları, bu dosyayı oluşturan veya değiştiren bilgisayardaki saat diliminin UTC'den iki saat daha fazla olduğunu, yani kış saatinde Avrupa/Kiev olduğunu gösterir.
Yardımcı programa sembolik bir bağlantı iletmeye çalışırsanız, yalnızca bağlantının Inode'undaki bilgileri gösterecektir:
$ stat /etc/passwdlin
Bağlantının işaret ettiği dosya hakkındaki bilgileri görmek için -L
seçeneğini kullanın:
$ stat -L /etc/passwdlink
Birden fazla dosya geçebilirsiniz:
$ stat /etc/passwd /etc/group
Çıktıyı biçimlendirmek için aşağıdaki karakter dizilerini kullanabilirsiniz:
A
- erişim hakları;
b
- dolu blok sayısı;
F
- dosya türü;
g
- dosya grubu tanımlayıcısı;
G
- dosya grubu adı;
i
- Inode tanımlayıcısı;
n
- dosya adı;
s
- dosya boyutu;
u
- dosya sahibi tanımlayıcısı;
U
- dosya sahibi adı;
x
- son erişim zamanı;
y
- son içerik değişikliğinin zamanı;
z
- içerik veya özniteliklerin son değiştirilme zamanı.
Bunlar tüm olası diziler değildir, yardımcı program yardımında daha fazlasını bulabilirsiniz:
$ man stat
Örneğin, yalnızca bir dosyanın adını ve içeriğinin son değiştirilme zamanını görüntüleyelim:
$ stat --printf "File %n has been modified %y " /etc/passwd /etc/group
Eğer dosyanın bulunduğu dosya sistemi hakkında bilgi görmek istiyorsanız -f
seçeneğini kullanmalısınız:
$ stat -f /etc/passwd
Yardımcı programın görüntülediği alanların ne anlama geldiğini görelim:
Dosya
- dosyanın adı;
Type
- dosya sistemi türü;
ID
- dosya sistemi tanımlayıcısı;
İsim uzunluğu(Namelen
) - dosya sistemindeki maksimum isim uzunluğu;
Blok
boyutu - optimum hız için bir okuma veya yazma isteğindeki veri miktarı;
Temel blok
boyutu - dosya sistemindeki fiziksel blok boyutu.
Sırada sistemdeki toplam blok sayısı ve boş blok sayısı vardır.