Özet
stat [-FLnq] [-f format | -l | -r | -s | -x] [-t zamanbiçimi] [dosya ...]
readlink [-fn] [dosya ...]
Açıklama
stat yardımcı programı, komut satırında belirtilen her bir dosya hakkında ayrıntılı meta veri (boyut, izinler, oluşturma/değiştirilme zamanları, sahiplik vb.) bilgilerini görüntüler. Dosya bilgilerini çekmek için ilgili dosya üzerinde okuma, yazma veya yürütme izinleri gerekmez; ancak dosyaya giden yol adında listelenen tüm üst dizinlerin aranabilir (çalıştırılabilir) olması şarttır. Herhangi bir argüman verilmezse stat, standart girdi (stdin) dosya tanımlayıcısı hakkındaki bilgileri görüntüler.
readlink olarak çağrıldığında (veya ilgili modda), yalnızca sembolik bağlantının (symlink) işaret ettiği hedef konum ekrana yazdırılır. Eğer verilen argüman bir sembolik bağlantı değilse (ve -f seçeneği belirtilmemişse) hiçbir şey yazdırılmaz ve araç hata ile sonlanır. -f seçeneği verilirse, sembolik bağlantılar rekürsif olarak çözümlenerek mutlak yol adı kurallı hale (canonicalized) getirilir.
Seçenekler
Aşağıdaki seçenekler mevcuttur:
-F: ls(1) komutunda olduğu gibi, her dosya türünü ayırt eden bir simge görüntüler: Dizinler için/, yürütülebilir dosyalar için*, sembolik bağlantılar için@, whiteout dosyaları için%, soketler için=ve FIFO boruları için|.-Fseçeneği otomatik olarak-lseçeneğini de kapsar.-L:lstat(2)yerinestat(2)sistem çağrısını kullanır. Bu sayede, dosya bir sembolik bağlantı ise bağlantının kendisine ait bilgileri değil, hedeflenen dosyanın bilgilerini görüntüler. Bağlantı bozuksa veya hedef mevcut değilse, otomatik olarak sembolik bağlantının kendi bilgilerine geri döner.-f format: Çıktıyı belirtilenformatyapısına göre özelleştirerek yazar (detaylar için aşağıdaki Biçimlendirme Kuralları bölümüne bakın).-l: Çıktıyıls -lTçıktısı ile aynı formatta gösterir.-n: Çıktının sonuna otomatik olarak yeni satır (\n) karakteri eklemez.-q:stat(2)veyalstat(2)çağrılarının başarısız olduğu durumlarda hata mesajlarını gizler.readlinkmodunda bu hata gizleme varsayılan olarak etkindir.-r: Ham (raw) bilgileri görüntüler; stat yapısındaki tüm alanları hiçbir biçimlendirme uygulamadan ham sayısal değerler halinde (örneğin Unix epoch'tan bu yana geçen saniye olarak) yazdırır.-s: Çıktıyı, kabuk (shell) ortam değişkenlerini doğrudan başlatmak (örneğineval) için uygun olan atama formatında (st_size=123 st_mode=...) yazdırır.-t zamanbiçimi: Zaman damgalarını belirtilenzamanbiçimiyapısıyla yazdırır. Biçim dizgesi doğrudanstrftime(3)fonksiyonuna iletilir.-x: Bilgileri, Linux dağıtımlarındakistatçıktısına benzer şekilde çok daha ayrıntılı ve açıklayıcı bir formatta görüntüler.
Biçimlendirme Kuralları (Formatting)
Biçim dizgileri, % karakteriyle başlaması ve struct stat yapısındaki alanları seçen bir karakterle bitmesiyle printf(3) formatına oldukça benzer.
Biçim Bayrakları (Flags)
#: Sekizlik (octal) çıktının başına0, onaltılık (hex) çıktının başına0xeklenmesini sağlar.+: Sayıların önündeki artı/eksi işaretini her zaman yazdırır (pozitif sayılar dahil).-: Çıktıyı sola hizalar (varsayılan olarak sağa hizalıdır).0: Sayıları boşluk yerine soluna sıfır (0) doldurarak yazar.(boşluk): Negatif olmayan sayıların önüne bir adet boşluk karakteri ayırır.
Alan Belirteçleri (Format Specifiers)
| Belirteç | struct stat Karşılığı | Açıklama |
|---|---|---|
d |
st_dev |
Dosyanın üzerinde bulunduğu aygıtın kimliği. |
i |
st_ino |
Dosyanın inode numarası. |
p |
st_mode |
Dosya türü ve erişim izinleri (modu). |
l |
st_nlink |
Dosyaya giden sabit bağlantı (hard link) sayısı. |
u |
st_uid |
Dosya sahibinin sayısal kullanıcı kimliği (UID). |
g |
st_gid |
Dosyanın sayısal grup kimliği (GID). |
r |
st_rdev |
Karakter ve blok aygıt özel dosyaları için aygıt numarası. |
a |
st_atime |
Dosyaya son erişim zamanı (atime). |
m |
st_mtime |
Dosyanın son değişiklik zamanı (mtime). |
c |
st_ctime |
Dosya meta verilerinin (inode) son değişiklik zamanı (ctime). |
B |
st_birthtime |
Dosyanın ilk oluşturulma (doğum) zamanı (birthtime). |
z |
st_size |
Dosyanın bayt cinsinden boyutu. |
b |
st_blocks |
Dosya için ayrılan fiziksel disk blok sayısı. |
k |
st_blksize |
En uygun dosya sistemi G/Ç (I/O) blok boyutu. |
f |
st_flags |
Dosya için kullanıcı tanımlı sistem bayrakları. |
v |
st_gen |
Inode üretim (generation) numarası. |
Özel Çıktı Belirteçleri (Uzatılmış Yapılar)
| Belirteç | Açıklama |
|---|---|
N |
Dosyanın adı. |
R |
Dosyaya karşılık gelen mutlak fiziksel yol adı. |
T |
Dosya türü (ls -F stili veya daha açıklayıcı formatta). |
Y |
Sembolik bir bağlantının hedef aldığı yol. |
Z |
Aygıt dosyaları için "major,minor" çıktısı, diğer dosyalar için boyut çıktısı verir. |
[!NOTE] Özel çıktı belirteci
S, çıktının (uygulanabilir olduğunda) dizgi (string) biçiminde olmasını sağlamak için kullanılabilir (örn.%Spdosya izinlerini-rw-r--r--şeklinde,%Susahip adınırootşeklinde görüntüler).
Alt Alan Belirteçleri (Subfield Modifiers)
H(Yüksek - High): Aygıtlar için ana (major) numarayı; izinler (p) için kullanıcı (user) bitlerini; dosya türleri (T) için uzun açıklama biçimini temsil eder.M(Orta - Middle): İzinler için grup (group) bitlerini veya sayısal izinler içinsuid/sgid/stickybitlerini temsil eder.L(Düşük - Low): Aygıtlar için ikincil (minor) numarayı; izinler için diğer (other) bitlerini; tür (T) içinls -Ftarzı simgeyi temsil eder.
Örnekler
Aşağıdaki örnekler kabukta (shell) çalıştırılabilecek şekilde gösterilmiştir:
Varsayılan biçimde dosya meta verilerini görüntüleme:
stat /tmp/barSembolik bir bağlantının kendisi yerine, işaret ettiği hedef dizinin bilgilerini
/ile sonlandırarak alma (-LF):stat -LF /tmp/fooKabuk ortam değişkenlerini topluca başlatmak için
evalve-sseçeneğini kullanma:eval $(stat -s .profile) echo "Dosya Boyutu: $st_size, Son Degistirilme: $st_mtimespec"Belirli dosyaların adlarını, türlerini ve bağlantı hedeflerini özel biçim dizgesiyle listeleme:
stat -f "%N: %HT%SY" /tmp/*Aygıtların isimlerini, türlerini, major ve minor numaralarını detaylıca listeleme:
stat -f "Ad: %N%n%tTür: %HT%n%tAna: %Hr%n%tİkincil: %Lr%n%n" /dev/zeroDosya üzerindeki sahiplik ve grup izin yetkilerini açık biçimde ayırma:
stat -f "%Sp -> sahip=%SHp grup=%SMp diğer=%SLp" .Dosyaların değiştirilme zamanlarını (
%Sm) yıl-ay-gün-saat-dakika-saniye biçiminde sıralanabilir yazma:stat -f %Sm -t %Y%m%d%H%M%S /tmp/foo
Ayrıca Bakınız
file(1), ls(1), readlink(1), lstat(2), readlink(2), stat(2), printf(3), strftime(3)