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

$ cpio

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

arşivlere dosya kopyalama ve arşivlerden dosya çıkarma

Özet

cpio -i [seçenekler] [şablon ...] [< arşiv]
cpio -o [seçenekler] < isim-listesi [> arşiv]
cpio -p [seçenekler] hedef-dizin < isim-listesi

Açıklama

cpio, arşivler ve dizinler arasında dosya kopyalar. Bu uygulama; tar, pax, cpio, zip, jar, ar ve ISO 9660 CD-ROM imajlarından çıkarma (extract) yapabilir ve tar, pax, cpio, ar ve shar arşivleri oluşturabilir.

cpio için ilk seçenek aşağıdaki mod göstergelerinden biridir:

  • -i: Girdi. Standart girdiden bir arşivi okur (aksi belirtilmedikçe) ve içeriği diske çıkarır veya -t seçeneği belirtilmişse içeriği standart çıktıda listeler. Bir veya daha fazla dosya şablonu belirtilirse yalnızca şablonlardan biriyle eşleşen dosyalar çıkarılır.
  • -o: Çıktı. Standart girdiden dosya isimlerinin bir listesini okur ve standart çıktıda (aksi belirtilmedikçe) belirtilen öğeleri içeren yeni bir arşiv üretir.
  • -p: Doğrudan geçiş (pass-through). Standart girdiden dosya isimlerinin bir listesini okur ve dosyaları belirtilen dizine kopyalar.

Seçenekler

Özellikle aksi belirtilmedikçe, seçenekler tüm çalışma modlarında geçerlidir.

  • -0, --null
    Yeni satırlar yerine NUL karakterleriyle ayrılmış dosya isimlerini okur. Okunan dosya isimlerinden herhangi birinin yeni satır karakteri içerme olasılığı varsa bu gereklidir.

  • -6, --pwb
    İkili (binary) formatta bir arşiv okurken, bunun 6. Sürüm UNIX'in PWB varyantından kalan daha eski bir format olduğunu varsayar. Bir cpio arşivi yazarken PWB formatını kullanır.

  • -7, --binary
    Yalnızca o modunda kullanılır. Bir cpio arşivi yazarken daha yeni, PWB olmayan ikili formatı kullanır.

  • -A
    Yalnızca o modunda kullanılır. Belirtilen arşive ekleme (append) yapar. Henüz uygulanmadı.

  • -a
    o ve p modlarında kullanılır. Dosyalar okunduktan sonra erişim sürelerini (access times) sıfırlar.

  • -B
    Yalnızca o modunda kullanılır. Çıktıyı 5120 baytlık kayıtlara bloklar.

  • -C boyut
    Yalnızca o modunda kullanılır. Çıktıyı belirtilen bayt boyutundaki kayıtlara bloklar.

  • -c
    Yalnızca o modunda kullanılır. Eski POSIX taşınabilir karakter formatını kullanır. --format odc ile eşdeğerdir.

  • -d, --make-directories
    i ve p modlarında kullanılır. Gerektiğinde dizinleri oluşturur.

  • -E dosya
    Yalnızca i modunda kullanılır. Listelemek ve çıkarmak için dosya şablonlarının listesini belirtilen dosyadan okur.

  • -F dosya, --file dosya
    Arşivi belirtilen dosyadan okur veya arşivi o dosyaya yazar.

  • -f şablon
    Yalnızca i modunda kullanılır. Şablonla eşleşen dosyaları yoksayar.

  • -H format, --format format
    Yalnızca o modunda kullanılır. Çıktı arşivini belirtilen formatta üretir. Desteklenen formatlar:

    cpio     odc için eş anlamlıdır.
    newc     SVR4 taşınabilir cpio formatı.
    odc      Eski POSIX.1 taşınabilir sekizli yönelimli (octet-oriented) cpio formatı.
    pax      ustar formatının bir uzantısı olan POSIX.1 pax formatı.
    ustar    POSIX.1 tar formatı.

    Varsayılan format odc'dir. Temel alınan libarchive(3) kütüphanesi tarafından şu anda desteklenen formatlar hakkında daha eksiksiz bilgi için libarchive-formats(5) sayfasına bakın.

  • -h, --help
    Kullanım bilgisini yazdırır.

  • -I dosya
    Arşivi belirtilen dosyadan okur.

  • -i, --extract
    Girdi modu. Açıklama için yukarıya bakın.

  • --insecure
    Yalnızca i ve p modlarında kullanılır. Çıkarma veya kopyalama sırasında güvenlik kontrollerini devre dışı bırakır. Bu; sembolik bağlantılar, mutlak yollar ve isminde .. içeren yol isimleri aracılığıyla çıkarma yapılmasına izin verir.

  • -J, --xz
    Yalnızca o modunda kullanılır. Dosyayı yazmadan önce xz uyumlu sıkıştırma ile sıkıştırır. Girdi modunda bu seçenek yoksayılır; xz sıkıştırması girdide otomatik olarak tanınır.

  • -j
    -y ile eş anlamlıdır.

  • -L
    o ve p modlarında kullanılır. Tüm sembolik bağlantılar takip edilir. Normalde sembolik bağlantılar, sembolik bağlantı olarak arşivlenir ve kopyalanır. Bu seçenekle, bunun yerine bağlantının hedefi arşivlenir veya kopyalanır.

  • -l, --link
    Yalnızca p modunda kullanılır. Kopyalamak yerine, hedef dizinden orijinal dosyalara bağlantılar (links) oluşturur.

  • --lrzip
    Yalnızca o modunda kullanılır. Elde edilen arşivi lrzip(1) ile sıkıştırır. Girdi modunda bu seçenek yoksayılır.

  • --lz4
    Yalnızca o modunda kullanılır. Arşivi yazmadan önce lz4 uyumlu sıkıştırma ile sıkıştırır. Girdi modunda bu seçenek yoksayılır; lz4 sıkıştırması girdide otomatik olarak tanınır.

  • --zstd
    Yalnızca o modunda kullanılır. Arşivi yazmadan önce zstd uyumlu sıkıştırma ile sıkıştırır. Girdi modunda bu seçenek yoksayılır; zstd sıkıştırması girdide otomatik olarak tanınır.

  • --lzma
    Yalnızca o modunda kullanılır. Dosyayı yazmadan önce lzma uyumlu sıkıştırma ile sıkıştırır. Girdi modunda bu seçenek yoksayılır; lzma sıkıştırması girdide otomatik olarak tanınır.

  • --lzop
    Yalnızca o modunda kullanılır. Elde edilen arşivi lzop(1) ile sıkıştırır. Girdi modunda bu seçenek yoksayılır.

  • --passphrase parola
    Parola, şifrelenmiş bir arşivi çıkarmak veya oluşturmak için kullanılır. Şu anda zip, cpio'nun şifreli arşivleri işleyebildiği tek formattır. Bu seçeneğin kullanımının ne kadar güvensiz olduğunu fark etmediğiniz sürece bu seçeneği kullanmamalısınız.

  • -m, --preserve-modification-time
    i ve p modlarında kullanılır. Oluşturulan dosyalardaki dosya değişiklik zamanını kaynaktakilerle eşleşecek şekilde ayarlar.

  • -n, --numeric-uid-gid
    i modunda, yalnızca -t ile kullanılır. Sayısal uid ve gid değerlerini görüntüler. Varsayılan olarak cpio, arşivde sağlandığında kullanıcı ve grup isimlerini görüntüler veya sistem parola veritabanında kullanıcı ve grup isimlerini arar.

  • --no-preserve-owner
    Yalnızca i modunda kullanılır. Dosya sahipliğini geri yüklemeye çalışmaz. Root olmayan kullanıcılar tarafından çalıştırıldığında varsayılan davranış budur.

  • -O dosya
    Arşivi belirtilen dosyaya yazar.

  • -o, --create
    Çıktı modu. Açıklama için yukarıya bakın.

  • -p, --pass-through
    Doğrudan geçiş modu. Açıklama için yukarıya bakın.

  • --preserve-owner
    Yalnızca i modunda kullanılır. Dosya sahipliğini geri yükler. Root kullanıcısı tarafından çalıştırıldığında varsayılan davranış budur.

  • --quiet
    Gereksiz mesajları engeller.

  • -R [kullanıcı][:][grup], --owner [kullanıcı][:][grup]
    Çıktıdaki dosyaların sahibini ve/veya grubunu ayarlar. Grup bir kullanıcı olmadan belirtilirse (örneğin -R :wheel), grup ayarlanır ancak kullanıcı ayarlanmaz. Kullanıcı, sonunda iki nokta üst üste ile ve grup olmadan belirtilirse (örneğin -R root:), grup kullanıcının varsayılan grubuna ayarlanır. Kullanıcı sonunda iki nokta üst üste olmadan belirtilirse, kullanıcı ayarlanır ancak grup ayarlanmaz. -i ve -p modlarında bu seçenek yalnızca süper kullanıcı tarafından kullanılabilir. Uyumluluk için iki nokta üst üste yerine nokta da kullanılabilir.

  • -r
    Tüm modlarda kullanılır. Dosyaları etkileşimli olarak yeniden adlandırır. Her dosya için /dev/tty aygıtına dosyanın adını içeren bir bilgi istemi yazılır ve /dev/tty aygıtından bir satır okunur. Okunan satır boşsa dosya atlanır. Satır tek bir nokta içeriyorsa dosya normal şekilde işlenir. Aksi takdirde satır dosyanın yeni adı olarak kabul edilir.

  • -t, --list
    Yalnızca i modunda kullanılır. Arşivin içeriğini standart çıktıya listeler; içeriği diske geri yüklemez.

  • -u, --unconditional
    i ve p modlarında kullanılır. Mevcut dosyaların üzerine koşulsuz olarak yazar. Normalde, daha eski bir dosya diskteki daha yeni bir dosyanın üzerine yazmaz.

  • -V, --dot
    İşlenen her dosya için standart hataya (stderr) bir nokta yazdırır. Yerini -v seçeneğine bırakmıştır.

  • -v, --verbose
    İşlenen her dosyanın adını standart hataya (stderr) yazdırır. -t seçeneğiyle birlikte, her dosyanın ayrıntılı bir listesini sunar.

  • --version
    Program sürüm bilgisini yazdırır ve çıkar.

  • -y
    Yalnızca o modunda kullanılır. Arşivi yazmadan önce bzip2 uyumlu sıkıştırma ile sıkıştırır. Girdi modunda bu seçenek yoksayılır; bzip2 sıkıştırması girdide otomatik olarak tanınır.

  • -Z
    Yalnızca o modunda kullanılır. Arşivi yazmadan önce compress uyumlu sıkıştırma ile sıkıştırır. Girdi modunda bu seçenek yoksayılır; sıkıştırma girdide otomatik olarak tanınır.

  • -z
    Yalnızca o modunda kullanılır. Arşivi yazmadan önce gzip uyumlu sıkıştırma ile sıkıştırır. Girdi modunda bu seçenek yoksayılır; gzip sıkıştırması girdide otomatik olarak tanınır.

Çıkış Durumu

cpio aracı başarı durumunda 0, bir hata oluştuğunda ise 0 değerinden büyük bir değerle çıkar.

Ortam

Aşağıdaki ortam değişkenleri cpio komutunun yürütülmesini etkiler:

  • LANG: Kullanılacak yerel ayar. Daha fazla bilgi için environ(7) sayfasına bakın.
  • TZ: Tarihleri görüntülerken kullanılacak saat dilimi. Daha fazla bilgi için environ(7) sayfasına bakın.

Örnekler

cpio komutu geleneksel olarak find(1) komutuyla birlikte dosya hiyerarşilerini kopyalamak için kullanılır. Bu örnek, tüm dosyaları src dizininden dest dizinine kopyalar:

find src | cpio -pmud dest

find(1) komutunun seçeneklerini dikkatlice seçerek ve bunu diğer standart araçlarla birleştirerek, hangi dosyaların kopyalanacağı üzerinde çok hassas bir kontrol sağlamak mümkündür. Bu örnek, src dizininden dest dizinine 2 günden eski ve isimleri belirli bir şablonla eşleşen dosyaları kopyalar:

find src -mtime +2 | grep foo[bar] | cpio -pdmu dest

Bu örnek, src dizininden dest dizinine 2 günden eski olan ve foobar kelimesini içeren dosyaları kopyalar:

find src -mtime +2 | xargs grep -l foobar | cpio -pdmu dest

Uyumluluk

i, o ve p mod seçenekleri ile a, B, c, d, f, l, m, r, t, u ve v seçenekleri SUSv2 ile uyumludur.

Eski POSIX.1 standardı, yalnızca -i, -o ve -p seçeneklerinin komut satırı seçeneği olarak yorumlanacağını belirtiyordu. Her biri, değiştirici karakterlerin bir listesinden oluşan tek bir argüman alıyordu. Örneğin, standart sözdizimi -imu seçeneğine izin verir ancak -miu veya -i -m -u seçeneklerini desteklemez; çünkü m ve u yalnızca -i seçeneğinin değiştiricileridir, kendi başlarına komut satırı seçenekleri değildir.

Bu uygulama tarafından desteklenen sözdizimi standartla geriye dönük olarak uyumludur. En iyi uyumluluk için betiklerin kendilerini standart sözdizimiyle sınırlandırmaları gerekir.

Ayrıca Bakınız

bzip2(1), gzip(1), mt(1), pax(1), tar(1), libarchive(3), cpio(5), libarchive-formats(5), tar(5)

Standartlar

cpio komutu için mevcut bir POSIX standardı yoktur. ISO/IEC 9945-1:1996 ("POSIX.1") standardında yer almış ancak IEEE Std 1003.1-2001 ("POSIX.1") standardından çıkarılmıştır.

cpio, ustar ve pax değişim dosya formatları, pax komutu için IEEE Std 1003.1-2001 ("POSIX.1") tarafından tanımlanmıştır.

Geçmiş

Orijinal cpio ve find araçları, AT&T'nin Unix Destek Grubu'nda çalışırken Dick Haight tarafından yazılmıştır. İlk olarak 1977'de, AT&T bünyesinde kullanılmak üzere geliştirilen "Programmer's Work Bench" sistemi olan PWB/UNIX 1.0 sürümünde yer almışlardır. AT&T dışında ilk kez 1981'de System III Unix'in bir parçası olarak yayınlanmışlardır. Sonuç olarak cpio, AT&T dışında bir süre sonrasına kadar pek tanınmasa da aslında tar komutundan daha eskidir.

Bu, libarchive(3) kütüphanesine dayanan tamamen yeniden yapılmış bir uygulamadır.

Hatalar (Bugs)

cpio arşiv formatının birkaç temel sınırlaması vardır: kullanıcı ve grup isimlerini saklamaz, yalnızca sayıları saklar. Sonuç olarak, farklı kullanıcı ve grup numaralandırmasına sahip sistemler arasında güvenilir bir şekilde dosya aktarmak için kullanılamaz. Daha eski cpio formatları, kullanıcı ve grup numaralarını 16 veya 18 bit ile sınırlar; bu modern sistemler için yetersizdir.

cpio arşiv formatları, 8 gigabayta kadar olan dosyaları destekleyebilen odc varyantı hariç, 4 gigabaytın üzerindeki dosyaları destekleyemez.