man/archiving_and_compression
man · Arşivleme & Sıkıştırma

$ yaa

Bölüm 1 · Arşivleme & Sıkıştırma

Apple Arşivlerini işleme aracı

Özet

aa komut [seçenekler]

Açıklama

aa, Apple Arşivleri (Apple Archives) oluşturur ve bunları işler.

Komutlar

  • archive: Hedef dizinin içeriğini arşivler.
  • append: Hedef dizinin içeriğini mevcut bir arşiv dosyasına ekler.
  • extract: Bir arşivin içeriğini hedef dizine çıkarır.
  • list: Bir arşivin içeriğini listeler.
  • convert: Bir arşivi başka bir arşive dönüştürür.
  • manifest: archive -manifest komutunun takma adıdır.
  • verify: Hedef dizinin içeriğini bir bildirim (manifest) ile karşılaştırır.
  • check-and-fix: Hata düzelten bir bildirim kullanarak hedef dizinin içeriğini doğrular ve düzeltir.

Seçenekler

  • -v: Ayrıntı düzeyini artırır. Varsayılan olarak sessiz çalışır.

  • -h: Kullanımı yazdırır ve çıkış yapar.

  • -d, -dir: Arşivleme veya çıkarma için hedef dizin. Varsayılan değer geçerli dizindir.

  • -i, -input_file: Girdi dosyası. Varsayılan değer standart girdidir (stdin).

  • -o, -output_file: Çıktı dosyası. Varsayılan değer standart çıktıdır (stdout).

  • -subdir: dir altındaki arşivlenecek yol. subdir, arşivlenen yollara dahil edilir ve çıkarılır. Varsayılan olarak boştur.

  • -D, -dir_and_subdir: Hem dir değerini dirname dir_and_subdir hem de subdir değerini basename dir_and_subdir olarak ayarlar.

  • -x: Arşivleme yaparken birim (volume) sınırlarını aşmaz.

  • -p: Kaynak yola bağlı olarak hedef yolu otomatik olarak oluşturur. Örneğin aa archive -d foo -p komutu aa archive -d foo -o foo.aar haline gelir.

  • -a, -algorithm: Arşiv oluştururken kullanılan sıkıştırma algoritması. lzfse, lzma, lz4, zlib veya raw değerlerinden biridir. Varsayılan değer lzfse değeridir.

  • -b, -block_size: Arşivleri sıkıştırırken kullanılan blok boyutu. İsteğe bağlı b, k, m, g son ekiyle bir sayı belirtilir. Son ek belirtilmezse bayt olduğu varsayılır. Varsayılan olarak archive komutu için 4m, diğer komutlar için 1m değeridir.

  • -t, -worker_threads: Verileri sıkıştıran veya açan çalışan iş parçacığı (worker thread) sayısı. Varsayılan olarak, çalışan makinedeki fiziksel CPU sayısıdır.

  • -wt, -writer_threads: Arşiv içeriğini çıkaran yazıcı iş parçacığı sayısı. Varsayılan olarak worker_threads ile eşleşir.

  • -enable-dedup, -no-enable-dedup: Ayarlanırsa ve arşivde SLC alanları mevcutsa, aynı verilere sahip dosyalar klon (clone) olarak çıkarılır.

  • -enable-holes, -no-enable-holes: Ayarlanırsa ve dosya sistemi destekliyorsa, sıfırla doldurulmuş bölümleri depolamak için dosyalardaki boşlukları (holes) algılar ve oluşturur.

  • -ignore-eperm, -no-ignore-eperm: Ayarlanırsa, dosya özniteliklerini ayarlarken oluşan EPERM hatalarını yoksayar.

  • -manifest: Aşağıdaki seçeneklerin takma adıdır:

    -exclude-field dat
    -include-field sh2,siz,idx,idz
    -a lzfse -b 1m
  • -imanifest, -input_manifest_file: Girdi arşiviyle eşleşen bildirim dosyası. İşlemeyi hızlandırmak amacıyla giriş seçim seçenekleriyle birlikte kullanılabilir.

  • -omanifest, -output_manifest_file: Çıktı arşivinin bildirim dosyasını alır.

  • -list-format, -format: list komutunun çıktı biçimi. text veya json değerlerinden biridir. Varsayılan değer text değeridir.

SLC alanını manuel olarak eklemek için örnek:

aa archive -o archive.aa -include-field SLC ...

Komut satırından arşivdeki verileri yalnızca bir kez depolayarak tekilleştirmenin yolu yoktur. Bunu elde etmek için API'yi kullanın ve AA_FLAG_ARCHIVE_DEDUPLICATE_DAT bayrağını iletin.

Öğe Seçim Seçenekleri

İlk olarak bir başlangıç öğe kümesi seçmek için -include-path ve -include-path-list seçenekleri uygulanır. Ardından bu kümeden öğeleri çıkarmak için -exclude-path, -exclude-path-list, -exclude-name ve -exclude-regex seçenekleri uygulanır.

Herhangi bir -include-path veya -include-path-list seçeneği verilmezse, başlangıç kümesine tüm öğeler dahil edilir. Bir dizin dahil edilir veya hariç tutulursa, tüm alt ağaç dahil edilir veya hariç tutulur.

  • -include-path, -path: Önek olarak path değerine sahip öğe yollarını dahil eder.
  • -exclude-path, -path: Önek olarak path değerine sahip öğe yollarını hariç tutar.
  • -include-path-list, -path_list_file: Dahil edilecek yolların listesini içeren dosya. Satır başına bir öğe beklenir.
  • -exclude-path-list, -path_list_file: Hariç tutulacak yolların listesini içeren dosya. Satır başına bir öğe beklenir.
  • -include-regex, -expr: expr düzenli ifadesiyle eşleşen öğe yollarını dahil eder. re_format(7) kılavuzuna bakın.
  • -exclude-regex, -expr: expr düzenli ifadesiyle eşleşen öğe yollarını hariç tutar.
  • -exclude-name, -name: Yolun tek bir bileşeninin name ile tam olarak eşleştiği öğe yollarını hariç tutar.
  • -include-type, -<tür_belirteci>: Yalnızca verilen türlerle eşleşen öğeleri dahil eder.
  • -exclude-type, -<tür_belirteci>: Yalnızca verilen türlerle eşleşmeyen öğeleri dahil eder.
  • -include-field, -<alan_belirteci>: Verilen alanları alan anahtarları kümesine ekler.
  • -exclude-field, -<alan_belirteci>: Verilen alanları alan anahtarları kümesinden çıkarır.

Bu seçeneklerin çoğu birden fazla kez belirtilebilir.

Şifreleme Seçenekleri

Arşivleme yaparken şifreleme, -password..., -key... veya -recipient-pub seçeneklerinden biriyle belirlenir. -sign-priv ile bir özel anahtar belirtilirse arşiv imzalanır.

Mevcut profillerle, genel/özel anahtarlar Elliptic Curve P-256 üzerindedir ve simetrik anahtarlar 256 bit uzunluğundadır.

  • -keychain: Simetrik anahtarları ve şifreleri yüklemek veya depolamak için Keychain uygulamasını kullanır.
  • -password, -file: Şifreleme parolası içeren dosya. Şifreleme yaparken -password-gen seçeneği geçilirse oluşturulan parolayı alır. Parolayı standart çıktıya yazdırmak için - olabilir.
  • -password-value, -parola: Parola.
  • -password-gen: Şifreleme yaparken yeni bir rastgele parola oluşturur. Parolayı Keychain'de depolamak için -keychain seçeneğiyle veya parolayı bir dosyada depolamak/yazdırmak için -password seçeneğiyle birlikte kullanılması önerilir.
  • -key, -file: Şifreleme simetrik anahtarını içeren dosya. Şifreleme yaparken -key-gen seçeneği geçilirse oluşturulan anahtarı alır.
  • -key-value, -anahtar: Simetrik anahtar. hex:<64 onaltılık basamak> veya base64:<base64 kullanılarak kodlanmış 32 bayt> biçimindedir.
  • -key-gen: Şifreleme yaparken yeni bir rastgele simetrik anahtar oluşturur.
  • -recipient-pub, -file: Şifreleme için alıcı genel anahtarı. Arşivi çözmek için ilgili özel anahtar gereklidir.
  • -recipient-priv, -file: Şifre çözme için alıcı özel anahtarı. Arşiv, ilgili genel anahtarla şifrelenmiş olmalıdır.
  • -sign-pub, -file: Şifre çözme için imza genel anahtarı. Arşiv, ilgili özel anahtarla imzalanmış olmalıdır.
  • -sign-priv, -file: Şifreleme için imza özel anahtarı. Arşivi çözmek ve kimliğini doğrulamak için ilgili genel anahtar gereklidir.

Öğe Türleri

Belirteç Anlam
b blok özel (block special)
c karakter özel (character special)
d dizin
f normal dosya
l sembolik bağ
m meta veriler (metadata)
p fifo
s soket

Öğe Alanları

Alan Anlam
typ öğe türü
pat yol (path)
lnk bağ yolu (link path)
dev aygıt kimliği (device id)
uid kullanıcı kimliği (user id)
gid grup kimliği (group id)
mod erişim izinleri
flg bayraklar
mtm değiştirme zamanı (modification time)
ctm oluşturma zamanı (creation time)
btm yedekleme zamanı (backup time)
xat genişletilmiş öznitelikler (extended attributes)
acl erişim denetim listesi (access control list)
cks CRC32 sağlama toplamı
sh1 SHA1 özeti
sh2 SHA2-256 özeti
dat dosya içeriği
siz dosya boyutu
duz disk kullanımı
idx ana arşivdeki öğe indeksi
yec dosya verisi hata düzeltme kodları
yaf Apple Archive alanları
all tüm alanlar için takma ad; yalnızca hariç tutma
attr uid,gid,mod,flg,mtm,btm,ctm için takma ad

Örnekler

8 MB bloklar halinde LZMA sıkıştırması kullanarak foo dizininin içeriğini foo.aar arşivine aktarır:

aa archive -d foo -o foo.aar -a lzma -b 8m

foo.aar içeriğini dst dizinine çıkarır:

aa extract -d dst -i foo.aar

1 MB bloklar halinde LZFSE sıkıştırması kullanarak foo dizininin bildirimi foo.manifest içine oluşturur:

aa manifest -d foo -o foo.manifest -a lzfse -b 1m

dst içeriğinin foo.manifest ile eşleştiğini doğrular:

aa verify -i foo.manifest -d dst -v

foo.manifest içindeki tüm öğe yollarını yazdırır:

aa list -i foo.manifest

Normal dosyalar için öğe yollarını, uid ve gid değerlerini yazdırır:

aa list -v -i foo.manifest -include-type f -exclude-field all -include-field uid,gid,pat

foo.aar arşivinin içeriğine ait bir bildirim dosyasını foo.manifest içinde oluşturur:

aa convert -manifest -v -i foo.aar -o foo.manifest

foo.aar arşivinden Applications/Mail.app önekiyle eşleşen öğeleri dst dizinine çıkarır:

aa extract -i foo.aar -include-path Applications/Mail.app -d dst

Rastgele bir parola oluşturup Keychain'de depolayarak foo dizinini foo.aea arşivine aktarır ve şifreler:

aa archive -d foo -o foo.aea -keychain -password-gen

Parolayı Keychain'den alarak foo.aea arşivini dst dizinine çözer ve çıkarır:

aa extract -o foo.aea -d dst -keychain

foo dizinini foo.aar arşivine aktarır:

aa archive -p -d foo

foo.aar arşivini foo dizinine çıkarır:

aa extract -p -i foo.aar