man/data_processing
man · Veri İşleme

$ plutil

Bölüm 1 · Veri İşleme

özellik listesi (property list) aracı

Ö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: Belirtilen fmt biç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: raw biçimi kullanan -extract ile 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ı -p seçeneğinde olduğu gibi sıralar.

  • -o path: -convert iş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: -insert ile kullanıldığında boş bir dizi. Değer kabul etmez.
  • -dictionary: -insert ile 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.