man/files
man · Dosyalar

$ xattr

Bölüm 1 · Dosyalar

dosya ve dizinlerin genişletilmiş özniteliklerini (extended attributes) görüntüler ve düzenler

Özet

xattr [-lrsvx] dosya ...
xattr -p [-lrsvx] öznitelik_adı dosya ...
xattr -w [-rsx] öznitelik_adı öznitelik_değeri dosya ...
xattr -d [-rsv] öznitelik_adı dosya ...
xattr -c [-rsv] dosya ...
xattr -h | --help

Açıklama

xattr yardımcı programı; dizinler ve sembolik bağlantılar dahil olmak üzere bir veya daha fazla dosyanın genişletilmiş özniteliklerini (extended attributes) görüntülemek, değiştirmek, yazmak veya kaldırmak için kullanılır.

Genişletilmiş öznitelikler, bir dosya ile birlikte saklanan ancak dosya sistemi özniteliklerinden (son değiştirilme zamanı veya dosya boyutu gibi) ayrı olan isteğe bağlı meta verilerdir. Bu meta veriler genellikle null ile sonlandırılmış bir UTF-8 dizgisidir, ancak isteğe bağlı ikili (binary) veriler de olabilir.

xattr aşağıdaki çalışma modlarına sahiptir:

  • Sıradan Mod (Listeleme): Herhangi bir mod seçeneği belirtilmediğinde, dosyanın sahip olduğu tüm genişletilmiş özniteliklerin isimlerini listeler.
  • -p (Print - Yazdır): Belirtilen öznitelik adıyla ilişkili değeri görüntüler. Değerler genellikle dizgi (string) olarak basılır, ancak veride boşluk veya ikili veri tespit edilirse onaltılık (hexadecimal) olarak gösterilir.
  • -w (Write - Yaz): Belirtilen öznitelik adına yeni bir değer atar veya mevcut değeri günceller.
  • -d (Delete - Sil): Belirtilen öznitelik adını (ve ilişkili değerini) dosyadan kaldırır.
  • -c (Clear - Temizle): Dosya üzerindeki tüm genişletilmiş öznitelikleri tek seferde temizler.
  • -h / --help: Kısa bir yardım mesajı görüntüler ve sonlanır.

Seçenekler

Aşağıdaki seçenekler mevcuttur:

  • -l: Hem öznitelik adlarının hem de bunlara karşılık gelen değerlerin birlikte görüntülenmesini sağlar. Değerlerin onaltılık gösteriminde çıktı; sol tarafta onaltılık ofset değerleri, sağ tarafta ise | karakterleri arasında ASCII gösterimini barındıran şık bir döküm halinde yazdırılır.
  • -r: Eğer belirtilen dosya argümanı bir dizin ise, dizin altındaki tüm dosya ve alt klasörleri rekürsif (recursive) olarak tarayarak işlemi uygular.
  • -s: Eğer dosya argümanı bir sembolik bağlantı (symlink) ise, bağlantının işaret ettiği dosya yerine sembolik bağlantının kendisi üzerinde işlem yapar.
  • -v: Tek bir dosya sorgulanırken bile çıktıda dosya adının gösterilmesini zorunlu kılar.
  • -x: Öznitelik değerinin onaltılık (hexadecimal) gösterimle çıktı vermesini zorlar. -w ile birlikte kullanıldığında girdi değerinin de onaltılık (boşluklar yoksayılacak şekilde) olmasını bekler. İkili verilerden onaltılık format üretmek için xxd(1) yardımcı programı kullanılabilir.

[!WARNING] Bazı özel sistem öznitelikleri, macOS çekirdeği tarafından zorunlu kılınan sabit bir veri uzunluğuna sahip olabilir. Örneğin com.apple.FinderInfo özniteliği her zaman tam olarak 32 bayt uzunluğunda olmalıdır. Farklı boyutta bir değer yazılmaya çalışılırsa [Errno 34] Result too large hatası alınır.

Çıkış Durumu

xattr komutu başarılı olduğunda 0 durumuyla çıkış yapar. Hata durumunda sıfır dışı bir değer döndürülür ve standart hataya (stderr) detaylı hata mesajı yazdırılır (detaylar için getxattr(2), listxattr(2), removexattr(2) ve setxattr(2) belgelerine bakın).

Örnekler

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

  1. Bir dosyanın sahip olduğu tüm genişletilmiş öznitelik isimlerini listeleme:

    xattr rapor.pdf

    [!NOTE] Genişletilmiş öznitelik adları, standart dosya listeleme aracında ls -l@ komutuyla da görüntülenebilir.

  2. İnternetten indirilen bir dosyanın karantina (com.apple.quarantine) öznitelik değerini okuma:

    xattr -p com.apple.quarantine program.dmg
  3. İnternetten indirilen dosyanın açılmasını engelleyen karantina özniteliğini tamamen temizleme (Gatekeeper engelini kaldırma):

    xattr -d com.apple.quarantine program.dmg
  4. Dosyaya yeni bir özel metin özniteliği ekleme (yazma):

    xattr -w yazar "Ahmet Yilmaz" rapor.pdf
  5. Bir klasör altındaki tüm dosyaların genişletilmiş özniteliklerini tamamen temizleme (-c ve -r):

    xattr -cr ~/Downloads/

Ayrıca Bakınız

ls(1), xxd(1), getxattr(2), listxattr(2), removexattr(2), setxattr(2)