Özet
plutil [command_option] [other_options] file
...
Açıklama
plutil, özellik listesi (property list) dosyalarının söz dizimini denetlemek veya bir plist dosyasını bir biçimden diğerine dönüştürmek için kullanılabilir. Girdi dosyası olarak - belirtilmesi durumunda standart girdiden (stdin) okuma yapılır.
İlk argüman gerçekleştirilecek işlemi belirtir ve aşağıdakilerden biridir:
-help: Komutun kullanım bilgilerini gösterir ve çıkış yapar.-p: Özellik listesini insanların okuyabileceği biçimde yazdırır. Çıktı biçimi kararlı değildir ve makineler tarafından ayrıştırılmak üzere tasarlanmamıştır. Bu komutun amacı, hangi biçimde olursa olsun bir plist dosyasının içeriğinin kolayca okunabilmesini sağlamaktır.-lint: Belirtilen özellik listesi dosyalarını söz dizimi hatalarına karşı denetler. Herhangi bir komut seçeneği belirtilmediğinde varsayılan seçenek budur.-convert fmt: Belirtilen dosyayı gösterilen biçime dönüştürür ve dosya sistemine geri yazar. Dosya, geçersiz söz dizimi nedeniyle yüklenemezse işlem başarısız olur. Objc ve swift biçimlerini destekleyen tek seçenek budur.
-convert objc -header Belirtilen dosyayı Obj-C değişmez (literal) söz dizimine dönüştürür ve bir .h dosyası oluşturur. Değişmez söz dizimine ilk kez yapılacak dönüşümler için kullanışlıdır ve yalnızca objc biçimiyle desteklenir.
-insert keypath -type [value] [-append]
Özellik listesini dışarı yazmadan önce içine bir değer ekler. type (tür) dictionary (sözlük) veya
array (dizi) olmadıkça value (değer) belirtilmesi zorunludur. Eğer -append belirtilirse,
keypath'in bir diziyi referans alması beklenir ve değer bu dizinin sonuna eklenir.
-replace keypath -type value Özellik listesini dışarı yazmadan önce mevcut bir değerin üzerine yazar.
-remove keypath
Özellik listesini dışarı yazmadan önce belirtilen keypath'teki değeri kaldırır.
-extract keypath fmt [-expect expect_type]
Özellik listesindeki keypath konumunda bulunan değeri, fmt biçiminde yeni bir plist olarak çıktı
verir. İsteğe bağlı olarak, -expect expect_type kullanılırsa ve keypath konumundaki değer bu
türle eşleşmezse başarısız olur.
-type keypath [-expect expect_type]
Özellik listesindeki keypath konumunda bulunan değerin türünü çıktı verir. İsteğe bağlı olarak,
-expect expect_type kullanılırsa ve keypath konumundaki değer bu türle eşleşmezse başarısız olur.
-create fmt: Belirtilenfmtbiçiminde boş bir plist oluşturur.
Birkaç ek seçenek daha mevcuttur:
--: Bundan sonraki tüm argümanların dosya adları olduğunu belirtir.-n:rawbiçimi kullanan-extractile birlikte kullanıldığında, sonlandırıcı yeni satır (newline) karakterini yazdırmaz. Bu, kabuk (shell) interpolasyonunda kullanımı kolaylaştırır.-s: Başarılı olunduğunda hiçbir şey yazdırmaz.-r: JSON için çıktıya boşluk ve girinti ekleyerek daha kolay okunabilir hale getirir ve anahtarları-pseçeneğinde olduğu gibi sıralar.-o path:-convertişleminin sonucu için alternatif bir yol adı belirtir; bu seçenek yalnızca tek bir dosya dönüştürüleceğinde kullanışlıdır. Yol olarak - belirtilmesi durumunda çıktıyı standart çıktıya (stdout) verir.-e extension: Dönüştürülen dosyalar için alternatif bir uzantı belirtir, bunun dışındaki durumlarda çıktı dosya adları aynı kalır.
Argümanlar
fmt aşağıdakilerden biridir:
xml1 XML plist biçiminin 1. sürümü için
binary1 ikili (binary) plist biçiminin 1. sürümü için
json JSON biçimi için
swift plist biçiminden swift değişmez (literal) söz dizimine dönüştürmek için
objc plist biçiminden Obj-C değişmez (literal) söz dizimine dönüştürmek için
raw -extract ile kullanıldığında, keypath konumundaki kapsüllenmemiş değeri yazdırır. Aşağıdaki
HAM DEĞERLER VE BEKLENEN TÜRLER bölümüne bakın. -o belirtilmedikçe sonuç standart çıktıya
(stdout) verilir.
keypath (anahtar yolu), bir istisna hariç olmak üzere bir anahtar-değer kodlama (key-value coding) anahtar yoludur:
bir diziye uygulanan sayısal bir yol bileşeni, dizideki o dizindeki nesne üzerinde işlem yapar veya sayısal
yol bileşeni anahtar yolunun son bileşeniyse onu diziye ekler.
type (tür) aşağıdakilerden biridir:
-bool: "YES" veya "true" geçirilirse YES, aksi takdirde NO-integer: geçerli herhangi bir 64 bit tam sayı-float: geçerli herhangi bir 64 bit kayan noktalı sayı-string: UTF-8 kodlamalı dize-date: XML özellik listesi biçimindeki tarih, JSON çıktısı alınırken desteklenmez-data: base-64 kodlamalı bir dize-xml: bir XML özellik listesi, bileşik değerler eklemek için kullanışlıdır-json: JSON parçası, bileşik değerler eklemek için kullanışlıdır-array:-insertile kullanıldığında boş bir dizi. Değer kabul etmez.-dictionary:-insertile kullanıldığında boş bir sözlük. Değer kabul etmez.
value (değer), -insert veya -replace bayrakları ile belirtilen keypath'e atanacaktır.
Ham Değerler ve Beklenen Türler
-extract keypath raw ile yazdırılan değer, o değerin türüne bağlıdır.
Aşağıda olası expect_type değerleri ve -extract keypath raw ile karşılaşıldığında nasıl yazdırılacakları
belirtilmiştir:
bool "true" veya "false" dizesi
integer sayısal değer
float belirli bir duyarlılığı olmayan kayan noktalı sayı değeri
string UTF-8 kodlamalı, ham ve kaçış karakterleri uygulanmamış dize
date UTC saat diliminde RFC3339 kodlamalı dize gösterimi
data verinin base64 kodlamalı dize gösterimi
array dizideki eleman sayısını gösteren bir sayı
dictionary sözlükteki her bir anahtar, alfabetik olarak sıralanmış şekilde yeni bir satıra yazdırılır
-type keypath kullanıldığında yukarıdaki expect_type dizesinin kendisi yazdırılır.
Tanılama
plutil komutu başarı durumunda 0, hata durumunda ise 1 çıkış koduyla sonlanır.
Ayrıca Bakınız
plist(5)
Standartlar
plutil komutu kendisininkinden başka kimsenin kurallarına uymaz.
Tarihçe
plutil komutu ilk kez macOS 10.2 sürümünde görünmüştür.
raw biçim türü, -type komutu, -expect seçeneği ve -append seçeneği ilk kez macOS 12 sürümünde görünmüştür.