Ö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.-wile 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çinxxd(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 largehatası 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:
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.
İnternetten indirilen bir dosyanın karantina (
com.apple.quarantine) öznitelik değerini okuma:xattr -p com.apple.quarantine program.dmgİnternetten indirilen dosyanın açılmasını engelleyen karantina özniteliğini tamamen temizleme (Gatekeeper engelini kaldırma):
xattr -d com.apple.quarantine program.dmgDosyaya yeni bir özel metin özniteliği ekleme (yazma):
xattr -w yazar "Ahmet Yilmaz" rapor.pdfBir klasör altındaki tüm dosyaların genişletilmiş özniteliklerini tamamen temizleme (
-cve-r):xattr -cr ~/Downloads/
Ayrıca Bakınız
ls(1), xxd(1), getxattr(2), listxattr(2), removexattr(2), setxattr(2)