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

$ pax

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

dosya arşivlerini okuma/yazma ve dizin hiyerarşilerini kopyalama

Sözdizimi

pax [-0cdjnvzO] [-f archive] [-s replstr] ... [-U user] ... [-G group] ... \
    [-T [from_date][,to_date]] ... [pattern ...]
pax -r [-0cdijknuvzDOYZ] [-f archive] [-o options] ... [-p string] ... \
    [-s replstr] ... [-E limit] [-U user] ... [-G group] ... \
    [-T [from_date][,to_date]] ... [pattern ...]
pax -w [-0dijtuvzHLOPX] [-b blocksize] [[-a] [-f archive]] [-x format] \
    [-s replstr] ... [-o options] ... [-U user] ... [-G group] ... \
    [-B bytes] [-T [from_date][,to_date][/[c][m]]] ... [file ...]
pax -r -w [-0dijklntuvDHLOPXYZ] [-p string] ... [-s replstr] ... \
    [-U user] ... [-G group] ... [-T [from_date][,to_date][/[c][m]]] ... \
    [file ...] directory

Açıklama

pax aracı, arşiv dosyalarının üyelerini okur, yazar, listeler ve dizin hiyerarşilerini kopyalar. Bu işlemler belirli bir arşiv biçiminden bağımsızdır ve çok çeşitli farklı arşiv biçimlerini destekler. Desteklenen arşiv biçimlerinin listesi -x seçeneğinin açıklaması altında bulunabilir.

-r ve -w seçeneklerinin varlığı, pax komutunun aşağıdaki işlevsel modlardan hangisinde çalışacağını belirler: listeleme (list), okuma (read), yazma (write) ve kopyalama (copy).

  • <yok>: Listeleme. Standart girdiden okunan ve yol adları belirtilen şablonlarla eşleşen arşiv dosyası üyelerinin bir içindekiler tablosunu standart çıktıya yazar. İçindekiler tablosu satır başına bir dosya adı içerir ve tek satırlık arabelleğe alma (single line buffering) kullanılarak yazılır.
  • -r: Okuma. Standart girdiden okunan ve yol adları belirtilen şablonlarla eşleşen arşiv dosyasının üyelerini çıkarır. Arşiv biçimi ve bloklama girdide otomatik olarak belirlenir. Çıkarılan dosya bir dizin olduğunda, o dizin köklü tüm dosya hiyerarşisi çıkarılır. Çıkarılan dosyalar, eğik çizgileri kaldırmak veya göreli bir yol öneki eklemek için -s seçeneği kullanılmadığı sürece, mutlak yollarda (/ karakteri ile başlayanlar) veya mevcut dosya hiyerarşisine göre göreli yollarda oluşturulur. Mutlak yollara çıkarılan dosyalar mevcut çalışma dizininin dışındaki dosyaların üzerine yazabilir; bu nedenle güvenilmeyen arşivleri çıkarırken dikkatli olunmalıdır. Çıkarılan dosyaların sahiplik, erişim ve değiştirme zamanları ile dosya modunun ayarlanması -p seçeneği altında daha ayrıntılı olarak tartışılmaktadır.
  • -w: Yazma. Belirtilen arşiv biçimini kullanarak dosya operandlarını içeren bir arşivi standart çıktıya yazar. Hiçbir dosya operandı belirtilmediğinde, standart girdiden satır başına bir tane olacak şekilde kopyalanacak dosyaların bir listesi okunur. Bir dosya operandı aynı zamanda bir dizin olduğunda, o dizin köklü tüm dosya hiyerarşisi dahil edilir.
  • -r -w: Kopyalama. Dosya operandlarını hedef dizine kopyalar. Hiçbir dosya operandı belirtilmediğinde, standart girdiden satır başına bir tane olacak şekilde kopyalanacak dosyaların bir listesi okunur. Bir dosya operandı aynı zamanda bir dizin olduğunda, o dizin köklü tüm dosya hiyerarşisi dahil edilir. Kopyalamanın etkisi, kopyalanan dosyaların bir arşiv dosyasına yazılıp ardından çıkarılması gibidir; tek fark orijinal ve kopyalanan dosyalar arasında sabit bağlar (hard link) olabilmesidir. Aşağıdaki -l seçeneğine bakın.

Uyarı: Hedef dizin, dosya operandlarından biri veya dosya operandlarından birinde köklenen bir dosya hiyerarşisinin üyesi olmamalıdır. Bu koşullar altındaki bir kopyalamanın sonucu öngörülemez.

Okuma veya listeleme işlemi sırasında hasarlı bir arşivi işlerken pax, ortam kusurlarından kurtulmaya çalışacak ve mümkün olan en fazla sayıda arşiv üyesini bulup işlemek için arşivi tarayacaktır. Hata işleme hakkında daha fazla ayrıntı için -E seçeneğine bakın.

Operandlar

directory operandı, bir hedef dizin yol adını belirtir. Eğer directory operandı mevcut değilse, kullanıcı tarafından yazılamıyorsa veya dizin türünde değilse, pax sıfır olmayan bir çıkış durumuyla sonlanır.

pattern operandı, arşiv üyelerinin bir veya daha fazla yol adını seçmek için kullanılır. Arşiv üyeleri, glob(3) tarafından açıklanan şablon eşleştirme gösterimi kullanılarak seçilir. pattern operandı sağlanmadığında arşivin tüm üyeleri seçilir. Bir şablon bir dizinle eşleştiğinde, o dizin köklü tüm dosya hiyerarşisi seçilir. Bir pattern operandı en az bir arşiv üyesi seçmediğinde, pax bu pattern operandlarını standart hataya bir tanılama mesajı olarak yazar ve ardından sıfır olmayan bir çıkış durumuyla sonlanır.

file operandı, kopyalanacak veya arşivlenecek bir dosyanın yol adını belirtir. Bir file operandı en az bir arşiv üyesi seçmediğinde, pax bu file operandı yol adlarını standart hataya bir tanılama mesajı olarak yazar ve ardından sıfır olmayan bir çıkış durumuyla sonlanır.

Seçenekler

Aşağıdaki seçenekler desteklenmektedir:

  • -r
    Standart girdiden bir arşiv dosyasını okur ve belirtilen dosyaları çıkarır. Bir arşiv üyesini çıkarmak için herhangi bir ara dizin gerekiyorsa, bu dizinler mkdir(2) işlevinin mod argümanı olarak S_IRWXU, S_IRWXG ve S_IRWXO değerlerinin bit düzeyinde kapsayıcı VEYA (OR) işlemi ile çağrılması gibi oluşturulur. Seçilen arşiv biçimi bağlantılı dosyaların belirtilmesini destekliyorsa ve bu dosyalar arşiv çıkarılırken bağlanamıyorsa, pax standart hataya bir tanılama mesajı yazar ve işlemin tamamlanmasının ardından sıfır olmayan bir çıkış durumuyla sonlanır.

  • -w
    Dosyaları belirtilen arşiv biçiminde standart çıktıya yazar. Hiçbir dosya operandı belirtilmediğinde, standart girdi, başında veya sonunda hiçbir boşluk (blank) olmaksızın satır başına bir tane olacak şekilde yol adlarının bir listesi için okunur.

  • -0
    Yol adı sonlandırıcısı olarak yeni satır (\n) yerine NUL (\0) karakterini kullanır. Bu yalnızca yazma ve kopyalama modlarında standart girdiden okunan yol adları ve listeleme modunda standart çıktıya yazılan yol adları için geçerlidir. Bu seçeneğin, find(1) içindeki -print0 işlevi veya xargs(1) içindeki -0 bayrağı ile uyum içinde kullanılması beklenir.

  • -a
    Dosyaları daha önce yazılmış bir arşivin sonuna ekler. -x seçeneği ile bir arşiv biçimi belirtilmezse, arşivde o anda kullanılmakta olan biçim seçilir. Arşivde zaten kullanılmış olan biçimden farklı bir biçimde arşive ekleme yapma girişimi, pax komutunun sıfır olmayan bir çıkış durumuyla derhal sonlanmasına neden olur. Yazmanın başladığı arşiv biriminde kullanılan bloklama boyutu, o arşiv biriminin geri kalanı için de kullanılmaya devam eder.

    Uyarı: Birçok depolama aygıtı, bir ekleme (append) işlemi gerçekleştirmek için gerekli işlemleri destekleyemez. Böyle bir aygıtta depolanan bir arşive ekleme yapmaya yönelik herhangi bir girişim, arşive zarar verebilir veya başka öngörülemeyen sonuçlara yol açabilir. Özellikle şerit sürücülerinin (tape drives) ekleme işlemini desteklememe olasılığı daha yüksektir. Düzenli bir dosya sistemi dosyasında veya bir disk aygıtında depolanan bir arşiv genellikle ekleme işlemini destekleyecektir.

  • -b blocksize
    Bir arşiv yazarken, arşiv dosyasına yapılan yazma başına düşen çıktıyı pozitif bir ondalık tam sayı bayt miktarı kadar bloklar. blocksize değeri 512 baytın katı olmalı ve en fazla 64512 bayt olmalıdır. 32256 bayttan daha büyük bir blocksize POSIX standardını ihlal eder ve tüm sistemlere taşınabilir olmayacaktır. Bir blocksize değeri, sırasıyla 1024 (1K) veya 512 ile çarpmayı belirtmek için k veya b ile bitebilir. Bir çift blocksize değeri, bir çarpımı belirtmek üzere x ile ayrılabilir. Belirli bir arşiv aygıtı, destekleyeceği bloklama boyutuna ek kısıtlamalar getirebilir. Bloklama belirtilmediğinde, varsayılan blocksize değeri kullanılan belirli arşiv biçimine bağlıdır. -x seçeneğine bakın.

  • -c
    pattern ve file operandları tarafından belirtilenler hariç tüm dosya veya arşiv üyelerini eşleştirir.

  • -d
    Kopyalanan veya arşivlenen dizin türündeki dosyaların ya da çıkarılan dizin türündeki arşiv üyelerinin, dizinin altındaki dosya hiyerarşisiyle değil, yalnızca dizin dosyasının kendisi veya arşiv üyesinin kendisiyle eşleşmesini sağlar.

  • -f archive
    archive değerini giriş veya çıkış arşivinin yol adı olarak belirterek varsayılan standart girdiyi (listeleme ve okuma için) veya standart çıktıyı (yazma için) geçersiz kılar. Tek bir arşiv birden fazla dosyaya ve farklı arşiv aygıtlarına yayılabilir. Gerektiğinde pax, arşivdeki bir sonraki birimin dosya veya aygıt yol adını soracaktır.

  • -i
    Dosyaları veya arşiv üyelerini etkileşimli olarak yeniden adlandırır. Bir pattern operandı ile eşleşen her bir arşiv üyesi veya bir file operandı ile eşleşen her bir dosya için pax, dosyanın adını, dosya modunu ve değiştirme zamanını vererek /dev/tty aygıtına bir istem gönderir. pax aracı daha sonra /dev/tty aygıtından bir satır okur. Bu satır boşsa dosya veya arşiv üyesi atlanır. Bu satır tek bir noktadan oluşuyorsa, dosya veya arşiv üyesi adında hiçbir değişiklik yapılmadan işlenir. Aksi takdirde adı satırın içeriğiyle değiştirilir. Bir yanıt okunurken <EOF> ile karşılaşılırsa veya /dev/tty okuma ve yazma için açılamazsa pax aracı derhal sıfır olmayan bir çıkış durumuyla sonlanır.

  • -j
    Arşivi yazarken veya okurken sıkıştırmak ya da sıkıştırmasını açmak için bzip2 kullanır. bzip2 aracı ayrıca yüklenmiş olmalıdır. -a ile uyumsuzdur.

  • -k
    Mevcut dosyaların üzerine yazmaz.

  • -l
    Dosyaları bağlar. Bu seçenek L harfidir. Kopyalama modunda (-r -w), mümkün olduğunda kaynak ve hedef dosya hiyerarşileri arasında sabit bağlar (hard link) oluşturulur.

  • -n
    Her bir pattern operandıyla eşleşen ilk arşiv üyesini seçer. Her bir şablon için birden fazla arşiv üyesi eşleştirilmez. Dizin türündeki üyeler eşleştiğinde, o dizin köklü dosya hiyerarşisi de eşleşir (-d belirtilmedikçe).

  • -o options
    -x tarafından belirtilen arşiv biçimine özgü olan, arşiv dosyalarını çıkarma veya yazma algoritmasını değiştirecek bilgileri belirtir. Genel olarak seçenekler şu biçimi alır:

    ad=değer

    Eski BSD tar biçimi için aşağıdaki seçenekler mevcuttur:

    nodir
    write_opt=nodir

    Arşiv yazarken dizinlerin depolanmasını atlar.

  • -p string
    Bir veya daha fazla dosya özelliği seçeneği (ayrıcalığı) belirtir. string seçenek-argümanı, çıkarma sırasında korunacak veya atılacak dosya özelliklerini belirten bir dizedir. Dize a, e, m, o ve p belirteç karakterlerinden oluşur. Birden fazla özellik aynı dize içinde birleştirilebilir ve birden fazla -p seçeneği belirtilebilir.

    Belirteç karakterlerinin anlamları:

    • a: Dosya erişim zamanlarını korumaz. Varsayılan olarak, dosya erişim zamanları mümkün olduğunda korunur.
    • e: "Her şeyi korur": kullanıcı kimliği (UID), grup kimliği (GID), dosya modu bitleri, dosya erişim zamanı ve dosya değiştirme zamanı. Bu, dosyaların arşivde kaydedildiği şekliyle tüm yönlerini korumak amacıyla root veya uygun tüm ayrıcalıklara sahip biri tarafından kullanılmak üzere tasarlanmıştır. e bayrağı, o ve p bayraklarının toplamıdır.
    • m: Dosya değiştirme zamanlarını korumaz. Varsayılan olarak, dosya değiştirme zamanları mümkün olduğunda korunur.
    • o: Kullanıcı kimliğini ve grup kimliğini korur.
    • p: Dosya modu bitlerini korur. Bu, sahiplik dışındaki dosyanın tüm yönlerini korumak isteyen normal ayrıcalıklara sahip bir kullanıcı tarafından kullanılmak üzere tasarlanmıştır. Dosya zamanları varsayılan olarak korunur, ancak bunu devre dışı bırakmak ve bunun yerine çıkarma zamanını kullanmak için diğer iki bayrak sunulmaktadır.

    Yukarıdaki listede "korumak" ifadesi, arşivde saklanan bir özniteliğin, çağıran işlemin izinlerine tabi olarak çıkarılan dosyaya verileceğini belirtir. Aksi takdirde çıkarılan dosyanın özniteliği, normal dosya oluşturma işleminin bir parçası olarak belirlenir. Ne e ne de o belirteç karakteri belirtilmemişse veya kullanıcı kimliği ile grup kimliği herhangi bir nedenle korunmuyorsa, pax dosya modunun S_ISUID (setuid) ve S_ISGID (setgid) bitlerini ayarlamaz.

    Bu öğelerden herhangi birinin korunması herhangi bir nedenle başarısız olursa, pax standart hataya bir tanılama mesajı yazar. Bu öğelerin korunamaması nihai çıkış durumunu etkileyecektir, ancak çıkarılan dosyanın silinmesine neden olmayacaktır. Herhangi bir string seçenek-argümanındaki dosya özelliği harfleri yinelenirse veya birbiriyle çelişirse, en son verilenler öncelikli olur. Örneğin:

    -p eme

    belirtilirse, dosya değiştirme zamanları yine de korunur.

    chflags(1) tarafından ayarlanan dosya bayrakları pax tarafından anlaşılmaz, ancak tar(1) ve dump(8) bunları korur.

  • -s replstr
    pattern veya file operandları tarafından belirtilen dosya ya da arşiv üyesi adlarını, ed(1) aracının düzenli ifade (regular expression) sözdizimini kullanarak replstr yerine koyma (substitution) ifadesine göre değiştirir. Arşiv üyelerinin listesini belirtilenlerle sınırlandırmak için file veya pattern argümanları verilebilir.

    Bu düzenli ifadelerin biçimi şöyledir:

    /old/new/[gp]

    ed(1) aracında olduğu gibi, old temel bir düzenli ifadedir ve new bir ve işareti (&), \n (burada n bir rakamdır) geri başvurular (back-references) veya alt ifade eşleştirmesi içerebilir. old dizesi ayrıca <newline> karakterleri içerebilir. Herhangi bir null olmayan karakter sınırlayıcı olarak kullanılabilir; burada / gösterilmiştir. Birden fazla -s ifadesi belirtilebilir. İfadeler komut satırında belirtildikleri sırayla uygulanır ve ilk başarılı yerine koyma işlemiyle son bulur.

    İsteğe bağlı sondaki g, yerine koyma ifadesini, son başarılı yerine koyma işleminin bitiminden sonraki ilk karakterle başlayan yol adı alt dizesine uygulamaya devam eder. İlk başarısız yerine koyma işlemi g seçeneğinin çalışmasını durdurur. İsteğe bağlı sondaki p, başarılı bir yerine koyma işleminin nihai sonucunun aşağıdaki biçimde standart hataya yazılmasına neden olur:

    <original pathname> >> <new pathname>

    Boş bir dizeye dönüşen dosya veya arşiv üyesi adları seçilmez ve atlanır.

  • -t
    pax tarafından okunan veya erişilen herhangi bir dosya veya dizinin erişim zamanlarını, pax tarafından okunmadan veya erişilmeden önceki zamanlarıyla aynı olacak şekilde sıfırlar.

  • -u
    Aynı ada sahip önceden var olan bir dosyadan veya arşiv üyesinden daha eski olan, yani daha eski bir dosya değiştirme zamanına sahip dosyaları yoksayar. Okuma sırasında, dosya sistemindeki bir dosya ile aynı ada sahip bir arşiv üyesi, eğer arşiv üyesi dosyadan daha yeniyse çıkarılır. Yazma sırasında, bir arşiv üyesi ile aynı ada sahip bir dosya sistemi üyesi, eğer arşiv üyesinden daha yeniyse arşive yazılır. Kopyalama sırasında hedef hiyerarşideki dosya, kaynak hiyerarşideki dosya daha yeniyse kaynak hiyerarşideki dosya ile veya kaynak hiyerarşideki dosyaya olan bir bağlantıyla değiştirilir.

  • -v
    Bir listeleme işlemi sırasında, ls(1) aracının -l seçeneğiyle kullandığı biçimi kullanarak ayrıntılı bir içindekiler tablosu üretir. Arşivin önceki bir üyesine olan sabit bağı (hard link) temsil eden yol adları için çıktı şu biçimdedir:

    <ls -l listing> == <link name>

    Sembolik bir bağı temsil eden yol adları için çıktı şu biçimdedir:

    <ls -l listing> => <link name>

    Burada <ls -l listing>, ls(1) aracının -l seçeneğiyle kullanıldığında belirtilen çıktı biçimidir. Aksi takdirde, diğer tüm çalışma modlarında (okuma, yazma ve kopyalama), o dosya veya arşiv üyesi üzerinde işlem başlar başlamaz yol adları standart hataya yazılır ve sonda bir <newline> olmaksızın boşaltılır. Sondaki <newline> arabelleğe alınmaz ve yalnızca dosya okunduktan veya yazıldıktan sonra yazılır.

  • -x format
    Varsayılan biçim ustar olmak üzere çıktı arşiv biçimini belirtir. pax aracı şu anda aşağıdaki biçimleri desteklemektedir:

    • cpio: IEEE Std 1003.2 ("POSIX.2") standartlarında belirtilen genişletilmiş cpio değişim biçimi. Bu biçim için varsayılan blocksize 5120 bayttır. Bu biçim tarafından kesilebilecek bir dosya hakkındaki düğüm (inode) ve aygıt bilgileri (bu biçim tarafından dosya sabit bağlarını tespit etmek için kullanılır) pax tarafından algılanır ve onarılır.

    • bcpio: Eski ikili (binary) cpio biçimi. Bu biçim için varsayılan blocksize 5120 bayttır. Bu biçim pek taşınabilir değildir ve diğer biçimler mevcut olduğunda kullanılmamalıdır. Bu biçim tarafından kesilebilecek bir dosya hakkındaki düğüm ve aygıt bilgileri pax tarafından algılanır ve onarılır.

    • sv4cpio: System V Sürüm 4 (release 4) cpio. Bu biçim için varsayılan blocksize 5120 bayttır. Bu biçim tarafından kesilebilecek bir dosya hakkındaki düğüm ve aygıt bilgileri pax tarafından algılanır ve onarılır.

    • sv4crc: Dosya crc sağlama toplamlarına (checksum) sahip System V Sürüm 4 cpio. Bu biçim için varsayılan blocksize 5120 bayttır. Bu biçim tarafından kesilebilecek bir dosya hakkındaki düğüm ve aygıt bilgileri pax tarafından algılanır ve onarılır.

    • tar: 4.3BSD'de bulunan eski BSD tar biçimi. Bu biçim için varsayılan blocksize 10240 bayttır. Bu biçim tarafından saklanan yol adları 100 karakter veya daha kısa olmalıdır. Yalnızca normal dosyalar, sabit bağlar (hard link), yumuşak bağlar (soft link/symlink) ve dizinler arşivlenecektir; diğer dosya sistemi türleri desteklenmez. Daha da eski tar biçimleriyle geriye dönük uyumluluk için, bir arşiv yazarken dizinlerin depolanmasını atlamak üzere bir -o seçeneği kullanılabilir:

      -o write_opt=nodir
    • ustar: IEEE Std 1003.2 ("POSIX.2") standardında belirtilen genişletilmiş tar değişim biçimi. Bu biçim için varsayılan blocksize 10240 bayttır. Bu biçim tarafından saklanan yol adları 255 karakter veya daha kısa olmalıdır. Dizin kısmı en fazla 155 karakter olabilir ve her bir yol bileşeni 100 karakterden az olmalıdır.

    pax aracı, herhangi bir arşiv biçimi kısıtlamasının sonucu olarak saklayamadığı veya çıkaramadığı tüm dosyaları tespit edecek ve raporlayacaktır. Bireysel arşiv biçimleri kullanım üzerinde ek kısıtlamalar getirebilir. Tipik arşiv biçimi kısıtlamaları şunları içerir ancak bunlarla sınırlı değildir: dosya yol adı uzunluğu, dosya boyutu, bağ yol adı uzunluğu ve dosyanın türü.

  • -z
    Arşivi yazarken veya okurken sıkıştırmak ya da sıkıştırmasını açmak için gzip(1) kullanır. -a ile uyumsuzdur.

  • -B bytes
    Tek bir arşiv birimine yazılan bayt sayısını bytes değeriyle sınırlandırır. bytes sınırı, sırasıyla 1048576 (1M), 1024 (1K) veya 512 ile çarpmayı belirtmek için m, k veya b ile bitebilir. Bir çift bayt sınırı, bir çarpımı belirtmek üzere x ile ayrılabilir.

    Belirtilen boyutun sıkıştırılmamış pax görüntüsünün kendisi için olduğunu unutmayın. -z seçeneği de kullanılırsa, ortaya çıkan dosya arşiv içeriğinin sıkıştırılabilirliğine bağlı olarak daha az bayt içerebilir. Tahmin edilebilir boyutta sıkıştırılmış birimler gerekiyorsa zip(1) kılavuzuna bakın.

    Uyarı: Bu seçeneği yalnızca, son veya en büyük yazma ofsetine dayalı bir dosya sonu okuma koşulunu destekleyen bir aygıta (normal bir dosya veya bir şerit sürücü gibi) arşiv yazarken kullanın. Bu seçeneğin bir disket (floppy) veya sabit disk ile kullanılması önerilmez.

  • -D
    Bu seçenek, dosya değiştirme zamanı yerine dosya düğüm (inode) değişiklik zamanının kontrol edilmesi hariç, -u seçeneğiyle aynıdır. Dosya düğüm değişiklik zamanı, düğüm bilgileri (örneğin uid, gid vb.) hedef dizindeki dosyanın bir kopyasından daha yeni olan dosyaları seçmek için kullanılabilir.

  • -E limit
    Kusurlu arşivleri okumaya çalışırken ardışık okuma hatalarının sayısını limit ile sınırlandırır. Pozitif bir sınırla pax, bir arşiv okuma hatasından kurtulmaya çalışacak ve arşivde saklanan bir sonraki dosyadan başlayarak işlemeye devam edecektir. 0 sınırı, bir arşiv biriminde ilk okuma hatası algılandığında pax komutunun işlemi durdurmasına neden olur. NONE sınırı, pax komutunun sonsuza kadar okuma hatalarından kurtulmaya çalışmasına neden olur. Varsayılan sınır, küçük bir pozitif yeniden deneme sayısıdır.

    Uyarı: Bu seçeneğin NONE ile kullanılması son derece dikkatli olmayı gerektirir; çünkü pax, çok ciddi şekilde kusurlu bir arşivde sonsuz döngüye girebilir.

  • -G group
    Grup adına göre veya # ile başladığında sayısal bir gid değerine göre bir dosya seçer. # işaretinden kaçmak için bir \ kullanılabilir. Birden fazla -G seçeneği sağlanabilir ve kontrol işlemi ilk eşleşmeyle durur.

  • -H
    Fiziksel dosya sistemi taraması gerçekleştirirken yalnızca komut satırı sembolik bağlarını izler.

  • -L
    Mantıksal dosya sistemi taraması gerçekleştirmek için tüm sembolik bağları izler.

  • -O
    Arşivi tek bir birim olmaya zorlar. Bir birim vaktinden önce sona ererse, pax yeni bir birim için istemde bulunmaz. Bu seçenek, hata kurtarmanın bir insan tarafından gerçekleştirilemediği otomatik görevler için yararlı olabilir.

  • -P
    Sembolik bağları izlemez, fiziksel dosya sistemi taraması gerçekleştirir. Varsayılan mod budur.

  • -T [from_date][,to_date][/[c][m]]
    Dosyaların, belirtilen from_date ile to_date arasındaki (tarihler dahildir) bir zaman aralığına denk gelen dosya değiştirme veya düğüm (inode) değişiklik zamanına göre seçilmesini sağlar. Yalnızca bir from_date sağlanırsa, değiştirme veya düğüm değişiklik zamanı buna eşit veya daha yeni olan tüm dosyalar seçilir. Yalnızca bir to_date sağlanırsa, değiştirme veya düğüm değişiklik zamanı buna eşit veya daha eski olan tüm dosyalar seçilir. from_date değeri to_date değerine eşit olduğunda, yalnızca değiştirme veya düğüm değişiklik zamanı tam olarak o zamana denk gelen dosyalar seçilir.

    pax yazma veya kopyalama modundayken, karşılaştırmada hangi dosya zamanının (düğüm değişikliği, dosya değiştirme veya her ikisi) kullanılacağını belirlemek için isteğe bağlı sondaki [c][m] alanı kullanılabilir. Hiçbiri belirtilmemişse, varsayılan değer yalnızca dosya değiştirme zamanını kullanmaktır. m, dosya değiştirme zamanının (dosyanın en son yazıldığı zaman) karşılaştırılmasını belirtir. c, düğüm değişiklik zamanının (dosya düğümünün en son değiştirildiği zaman; örneğin sahip, grup, mod değişikliği vb.) karşılaştırılmasını belirtir. Hem c hem de m belirtildiğinde, hem değiştirme hem de düğüm değişiklik zamanları karşılaştırılır.

    Düğüm değişiklik zamanı karşılaştırması, öznitelikleri yakın zamanda değiştirilen dosyaları seçmede veya yakın zamanda oluşturulan ve değiştirme zamanı daha eski bir zamana sıfırlanan dosyaları seçmede yararlıdır. Her iki dosya zamanını da kullanan zaman karşılaştırmaları, pax zaman tabanlı artımlı (incremental) bir arşiv oluşturmak için kullanıldığında yararlıdır.

    Zaman aralığı altı farklı alandan oluşur ve her alan iki basamak içermelidir. Biçim şöyledir:

    [[[[[cc]yy]mm]dd]HH]MM[.SS]

    Burada cc yılın ilk iki basamağıdır (yüzyıl), yy yılın son iki basamağıdır, ilk mm aydır (01'den 12'ye kadar), dd ayın günüdür (01'den 31'e kadar), HH günün saatidir (00'dan 23'e kadar), MM dakikadır (00'dan 59'a kadar) ve SS saniyedir (00'dan 59'a kadar). Dakika alanı MM zorunludur; diğer alanlar ise isteğe bağlıdır ve şu sırayla eklenmelidir: HH, dd, mm, yy, cc. SS alanı diğer alanlardan bağımsız olarak eklenebilir.

    Zaman aralıkları geçerli zamana göredir. Bu nedenle:

    -T 1234/cm

    bugün saat 12:34 veya daha sonrasında değiştirme ya da düğüm değişiklik zamanına sahip tüm dosyaları seçecektir. Birden fazla -T zaman aralığı sağlanabilir ve kontrol işlemi ilk eşleşmeyle durur.

  • -U user
    Kullanıcı adına göre veya # ile başladığında sayısal bir uid değerine göre bir dosya seçer. # işaretinden kaçmak için bir \ kullanılabilir. Birden fazla -U seçeneği sağlanabilir ve kontrol işlemi ilk eşleşmeyle durur.

  • -X
    Bir yol adı tarafından belirtilen dosya hiyerarşisini tararken, farklı bir aygıt kimliğine (device ID) sahip dizinlere inmez. Aygıt kimlikleri hakkında daha fazla bilgi için stat(2) içinde açıklanan st_dev alanına bakın.

  • -Y
    Bu seçenek, düğüm (inode) değişiklik zamanının, tüm dosya adı değişiklikleri tamamlandıktan sonra oluşturulan yol adı kullanılarak kontrol edilmesi hariç, -D seçeneğiyle aynıdır.

  • -Z
    Bu seçenek, değiştirme zamanının, tüm dosya adı değişiklikleri tamamlandıktan sonra oluşturulan yol adı kullanılarak kontrol edilmesi hariç, -u seçeneğiyle aynıdır.

  • --insecure
    Normalde pax, bir yol bileşeni olarak .. içeren dosya adlarını veya sembolik bağları yoksayar. Bu seçenekle, .. içeren dosyalar işlenebilir.

Dosyaların veya arşiv üyelerinin adları üzerinde çalışan seçenekler (-c, -i, -j, -n, -s, -u, -v, -D, -G, -T, -U, -Y ve -Z) aşağıdaki şekilde etkileşime girer.

Bir okuma işlemi sırasında dosyaları çıkarırken, arşiv üyeleri yalnızca -c, -n, -u, -D, -G, -T ve -U seçenekleriyle değiştirilmiş, kullanıcının belirttiği pattern operandlarına göre seçilir. Ardından herhangi bir -s ve -i seçeneği bu seçilen dosyaların adlarını değiştirir. Daha sonra nihai yol adına göre -Y ve -Z seçenekleri uygulanır. Son olarak -v seçeneği, bu değişikliklerden kaynaklanan adları yazar.

Bir yazma işlemi sırasında dosyaları arşivlerken veya bir kopyalama işlemi sırasında dosyaları kopyalarken, arşiv üyeleri yalnızca -n, -u, -D, -G, -T ve -U seçenekleriyle değiştirilmiş, kullanıcının belirttiği yol adlarına göre seçilir. -D seçeneği yalnızca kopyalama işlemi sırasında geçerlidir. Ardından herhangi bir -s ve -i seçeneği bu seçilen dosyaların adlarını değiştirir. Daha sonra bir kopyalama işlemi sırasında -Y ve -Z seçenekleri nihai yol adına göre uygulanır. Son olarak -v seçeneği, bu değişikliklerden kaynaklanan adları yazar.

-u veya -D seçeneklerinden biri ya da her ikisi -n seçeneğiyle birlikte belirtildiğinde, bir dosya karşılaştırıldığı dosyadan daha yeni olmadığı sürece seçilmiş sayılmaz.

Ortam

  • TMPDIR: Geçici dosyaların saklanacağı yol.

Çıkış Durumu

pax aracı aşağıdaki değerlerden biriyle sonlanır:

  • 0: Tüm dosyalar başarıyla işlendi.
  • 1: Bir hata oluştu.

Örnekler

Geçerli dizin içeriğini /dev/sa0 aygıtına kopyalar:

pax -w -f /dev/sa0 .

filename dosyasında depolanan bir arşiv için ayrıntılı içindekiler tablosunu verir:

pax -v -f filename

Tüm /tmp/from dizin hiyerarşisini /tmp/to dizinine kopyalar:

mkdir /tmp/to
cd /tmp/from
pax -rw . /tmp/to

a.pax arşivini okur; arşivdeki kökü /usr olan tüm dosyalar geçerli dizine göreli olarak çıkarılır:

pax -r -s ',^//*usr//*,,' -f a.pax

Geçerli dizinden dest_dir dizinine kopyalanacak dosyaları etkileşimli olarak seçmek için kullanılabilir:

pax -rw -i . dest_dir

a.pax arşivinden, sahibi root ve grubu bin olan tüm dosyaları çıkarır ve tüm dosya izinlerini korur:

pax -r -pe -U root -G bin -f a.pax

Hedef dizin olan /backup içindeki dosyalardan, kaynak dosya ağacı home içindeki aynı adlı dosyalardan daha eski olanları günceller ve listeler:

pax -r -w -v -Y -Z home /backup

Tanılama

pax bir arşivi okurken bir dosya veya bağlantı oluşturamadığında ya da bir arşiv yazarken bir dosyayı bulamadığında veya -p seçeneği belirtildiğinde kullanıcı kimliğini, grup kimliğini ya da dosya modunu koruyamadığında, standart hataya bir tanılama mesajı yazılır ve sıfır olmayan bir çıkış durumu döndürülür; ancak işlem devam eder. pax komutunun bir dosyaya bağlantı oluşturamadığı durumlarda, pax dosyanın ikinci bir kopyasını oluşturmaz.

Bir dosyayı arşivden çıkarma işlemi bir sinyal veya hata ile vaktinden önce sonlandırılırsa, pax kullanıcının istediği dosyayı yalnızca kısmen çıkarmış olabilir. Ek olarak, çıkarılan dosya ve dizinlerin dosya modları hatalı dosya bitlerine sahip olabilir ve değiştirme ile erişim zamanları yanlış olabilir.

Bir arşivin oluşturulması bir sinyal veya hata nedeniyle vaktinden önce sonlandırılırsa, pax arşivi yalnızca kısmen oluşturmuş olabilir; bu durum belirli arşiv biçimi spesifikasyonunu ihlal edebilir.

Kopyalama yaparken pax bir dosyanın kendi üzerine yazılmak üzere olduğunu tespit ederse, dosya kopyalanmaz, standart hataya bir tanılama mesajı yazılır ve pax tamamlandığında sıfır olmayan bir çıkış durumuyla sonlanır.

Ayrıca Bakınız

cpio(1), tar(1)

Standartlar

pax aracı, IEEE Std 1003.2 ("POSIX.2") standardının bir üst kümesidir (superset). -0, -j, -z, -B, -D, -E, -G, -H, -L, -O, -P, -T, -U, -Y, -Z seçenekleri; bcpio, sv4cpio, sv4crc, tar arşiv biçimleri ve listeleme ile okuma işlemleri sırasında kusurlu arşiv işleme, POSIX standardına yönelik uzantılardır.

Tarihçe

pax aracı 4.4BSD'de ortaya çıkmıştır.

Yazarlar

Keith Muller, University of California, San Diego

Hatalar

pax aracı çok baytlı (multibyte) karakterleri tanımaz.

chflags(1) tarafından ayarlanan dosya bayrakları pax tarafından korunmaz. chflags(1) kılavuzunun BUGS (Hatalar) bölümünde, bayraklardan habersiz olan araçların bir listesi bulunmaktadır.