man/files
man · Dosyalar

$ mtree

Bölüm 8 · Dosyalar

dizin hiyerarşisinin haritasını çıkarır ve doğrular

Özet

mtree [-LPUcdeinqruxwD] [-f belirtim] [-K anahtar_kelimeler] [-k anahtar_kelimeler] [-p yol] [-s tohum] [-X haric_tutma_listesi]

Açıklama

mtree yardımcı programı, geçerli dizini temel alan dosya hiyerarşisini, standart girdiden veya bir dosyadan okunan bir belirtim (specification) dosyası ile karşılaştırır. Özellikleri belirtimlerle eşleşmeyen, dosya hiyerarşisinde eksik olan veya belirtimde bulunup fiziksel olarak yer almayan tüm durumlar standart çıktıya raporlanır.

Seçenekler

Aşağıdaki seçenekler mevcuttur:

  • -c: Dosya hiyerarşisinin mevcut durumunu standart çıktıya bir belirtim satırları biçiminde yazdırır.
  • -d: Dizin (directory) türündeki dosyalar dışındaki tüm diğer dosya türlerini yoksayar.
  • -e: Dosya hiyerarşisinde var olan ancak karşılaştırılan belirtimde yer almayan ekstra dosyalar hakkında uyarı/hata raporlamaz.
  • -f belirtim_dosyası: Karşılaştırılacak belirtimi standart girdi yerine verilen belirtim_dosyasından okur. Bu seçenek iki kez belirtilirse, iki ayrı belirtim dosyası dosya hiyerarşisiyle karşılaştırılmak yerine doğrudan birbiriyle karşılaştırılır. Belirtimler -c çıktısındaki gibi sıralı olmalıdır.
  • -D: Genişletilmiş öznitelikleri (extended attributes) işlerken XATTR_SHOWCOMPRESSION bayrağını devre dışı bırakır.
  • -i: -c seçeneğiyle bir belirtim oluştururken bir dizin seviyesi her inildiğinde çıktıyı 4 boşluk girintiler.
  • -K anahtar_kelimeler: Belirtilen (boşluk veya virgülle ayrılmış) anahtar kelimeleri mevcut anahtar kelime kümesine ekler.
  • -k anahtar_kelimeler: Varsayılan anahtar kelimeler yerine, yalnızca type anahtar kelimesi ile birlikte belirtilen (boşluk veya virgülle ayrılmış) anahtar kelimeleri kullanır.
  • -L: Dosya hiyerarşisindeki tüm sembolik bağlantıları (symbolic links) takip eder.
  • -n: Bir belirtim oluştururken yol adı (pathname) yorum satırları üretmez.
  • -P: Dosya hiyerarşisindeki sembolik bağlantıları takip etmez, bunun yerine sembolik bağlantının kendisini dikkate alır (varsayılan davranış).
  • -p yol: Geçerli dizin yerine, belirtilen yol parametresini temel alan dosya hiyerarşisini kullanır.
  • -q: Sessiz (quiet) mod. Eksik bir dizin zaten mevcut olduğu için (örneğin dizin bir sembolik bağlantıysa) oluşturulamadığında hata vermez.
  • -r: Dosya hiyerarşisinde olup belirtim dosyasında tanımlanmamış olan tüm ekstra dosyaları sistemden siler (kaldırır).
  • -S: Dosyanın genişletilmiş özniteliklerinin özetinin (digest) hesaplanmasını atlar.
  • -s tohum: cksum anahtar kelimesinin belirtildiği tüm dosyaları temsil eden tek bir sağlama toplamını (checksum) standart hataya (stderr) yazdırır. Bu sağlama toplamı belirtilen tohum (seed) değeriyle başlatılır.
  • -U: Dosyaların sahibini, grubunu, izinlerini ve değişiklik zamanlarını belirtimle eşleşecek şekilde otomatik olarak düzeltir; eksik dizinleri ve sembolik bağlantıları oluşturur. Düzeltilen uyumsuzluklar hata olarak sayılmaz.
  • -u: Dosya hiyerarşisi belirtimle eşleşmediğinde çıkış durumunu 2 döndürmesi dışında tamamen -U seçeneği ile aynıdır.
  • -w: Bazı kritik olmayan hata durumlarını ölümcül olmayan uyarılara dönüştürür.
  • -X haric_tutma_listesi: Belirtim dışında tutulacak dosyaların fnmatch(3) desenlerini içeren dosya yolunu belirtir. exclude-list dosyasında yorum satırlarına izin verilmez.
  • -x: Dosya sistemindeki farklı bağlama noktalarının (mount points) altına inmez (farklı disk birimlerini taramaz).

Belirtim Dosyası Yapısı

Belirtimler çoğunlukla "anahtar kelimelerden" (keywords), yani dosyalarla ilgili doğrulanacak değerleri belirten dizelerden oluşur.

Desteklenen Anahtar Kelimeler

Anahtar Kelime Açıklama
cksum cksum(1) aracı tarafından belirtilen varsayılan algoritmayla dosyanın sağlama toplamını hesaplar.
flags Dosya bayrakları (sembolik ad olarak). Bilgi için chflags(1) kılavuzuna bakın.
ignore Bu dosyanın veya altındaki hiyerarşinin taranmasını tamamen yoksayar.
gid Dosya grubu (sayısal GID değeri).
gname Dosya grubu (sembolik grup adı).
md5digest Dosyanın MD5 mesaj özeti (hash).
sha1digest Dosyanın SHA-1 mesaj özeti (hash).
ripemd160digest Dosyanın RIPEMD160 mesaj özeti (hash).
mode Sayısal (sekizlik) veya sembolik dosya izinleri.
nlink Dosyanın sahip olması beklenen sabit bağlantı (hard link) sayısı.
nochange Dosyanın/dizinin varlığını doğrular, ancak diğer özniteliklerini (izin vb.) denetlemez.
uid Dosya sahibi (sayısal UID değeri).
uname Dosya sahibi (sembolik kullanıcı adı).
size Dosyanın bayt cinsinden boyutu.
link Sembolik bağlantının işaret etmesi beklenen hedef yol.
time Dosyanın son değişiklik zamanı (mtime).
btime Dosyanın oluşturulma zamanı (birthtime).
atime Dosyaya son erişim zamanı (atime).
ctime Dosya meta verilerinin son değişiklik zamanı (ctime).
ptime Dosyanın üst klasörüne eklendiği zaman.
inode Dosyanın inode numarası.
xattrsdigest Dosyanın genişletilmiş özniteliklerinin (xattrs) özeti.
acldigest Dosyanın Erişim Kontrol Listesinin (ACL) özeti.
nxattr Dosyanın sahip olması beklenen genişletilmiş öznitelik sayısı.
dataless Dosyanın verisiz (dataless) olup olmadığı.
purgeable Öğenin APFS temizlenebilir (purgeable) bayrakları.
protectionclass Öğenin Veri Koruma (Data Protection) sınıfı.
type Dosya türü. Değerler: block, char, dir, fifo, file, link, socket.

[!NOTE] Varsayılan anahtar kelimeler kümesi; flags, gid, mode, nlink, size, link, time ve uid şeklindedir.

Satır Türleri

Bir mtree belirtim dosyasında dört tür satır bulunur:

  1. /set anahtar=değer ...: Genel (global) öznitelik değerleri belirler. Örneğin: /set type=file uid=0 gid=0 mode=644 satırından sonra gelen tüm dosya tanımları bu izinleri miras alır.
  2. /unset anahtar ...: Genel olarak ayarlanmış bir özniteliği iptal eder.
  3. dosya_adı [anahtar=değer ...]: Belirli bir dosya için kural tanımlar. Dosya isimlerinde *, ?, [ gibi joker karakterler kullanılabilir. Eşleşme sağlandığında yerel değerler genel ayarları geçersiz kılar.
  4. ..: Geçerli dizin hiyerarşisinde bir seviye yukarı (üst dizine) çıkılmasını sağlar.

Dosyalar

  • /etc/mtree: Sistem standart belirtim dizini.

Çıkış Durumu

mtree aracı başarı durumunda 0, herhangi bir hata oluştuğunda 1 ve dosya hiyerarşisi belirtimle eşleşmediğinde 2 durum koduyla çıkış yapar. -U seçeneği kullanılıyorsa, eşleşmeme durumundaki 2 kodu başarıyla düzeltildiği için 0 durum koduna dönüştürülür.

Örnekler

Aşağıdaki örnekler kabukta (shell) çalıştırılabilecek şekilde gösterilmiştir:

  1. Geçerli dizin ağacının dosya belirtim haritasını oluşturup bir dosyaya kaydetme:

    mtree -c -p . > dosya_yapisi.mtree
  2. Oluşturulan belirtim haritasını kullanarak dizinin mevcut durumunu doğrulama (değişen, eksik veya fazladan dosyaları raporlar):

    mtree -f dosya_yapisi.mtree -p .
  3. Belirtim haritası ile dizini karşılaştırma ve eksik olan dizinleri otomatik oluşturup izinleri/sahipleri düzeltme (-U):

    sudo mtree -f dosya_yapisi.mtree -p . -U
  4. İki farklı mtree belirtim dosyasını (örneğin iki ayrı yedek yapısını) birbiriyle karşılaştırma:

    mtree -f yedek1.mtree -f yedek2.mtree

Ayrıca Bakınız

chflags(1), chgrp(1), chmod(1), chown(8), cksum(1), md5(1), stat(2), fts(3), md5(3)