cpio basic extract komutu, 'tar xzvf' eşdeğeri?


12

Sıkıştırılmış bir cpio dosyası olarak bir Unix yazılım dağıtımı aldım. Dosyaları ayıklamak için en iyi komut nedir?


Ne zaman yaptın, man cpione gördün?

5
Anlıyorum: -i -o -p -t -B -c -C -f -F -H -M -n -v -V -W -b -r -s -S -E -A-O-l - 0 -a -I-L -R -d -m -u -? --extract --create --pass-through --list --block-size = --io-size = --force-local --nonmatching --file = --format = --message = --numeric- uid-gid --quiet --rsh-command = --verbose --dot --warning = --swap --rename --swap-bytes --swap-halfwords --to-stdout - desen dosyası = - -only-verify-crc --append --link - mutlak-dosyaisimleri --no-mutlak-dosyaisimleri - boş --reset-erişim-zamanı --dereference --owner = --make-dizinler --preserve- değişiklik zamanı - no-preserve-owner --sparse - koşulsuz
Mark Harrison

Yanıtlar:


11
gzip -cd foo.cpio.gz | cpio -idmv
  • i: ayıkla (giriş)
  • d: dizinler oluşturun
  • m: koruma süresi
  • v: ayrıntılı

3
mkdir archive
cd archive
zcat ../archive.cpio.gz | cpio -idmv --no-absolute-filenames

Bu eski bir soru olsa da, Google'da yüksek görünüyor, bu yüzden güncelleyebileceğimi düşündüm. Genel olarak kabul edilen yanıtı kabul ediyorum, ancak makinenizdeki önemli sistem dosyalarının üzerine yazmak istemiyorsanız "--no-mutlak-dosya adları" eklemelisiniz. Ayrıca, şahsen ben "zcat" ı "gzip -cd" veya "gunzip -c" ye tercih ederim.

Son olarak, aygıt düğümleri içeren bir kök dosya sistemi çıkarıyorsanız, cpio'yu root (örneğin sudo) olarak çalıştırmanız gerektiğini unutmayın.



0

Örneğin, / etc / httpd / arşivlenmiş içeriğini geçerli dizine ayıklamak için alt dizinler oluşturun ./etc/httpd/

mkdir restored-etc-httpd
cd restored-etc-httpd    
zcat archive.cpio.gz | cpio -idmv --no-absolute-filenames "*etc/httpd/*"

Kabul edilen cevap ve Matt'in ikisi de bana yardımcı oldu ama üç ayrıntı yüzünden bir süre şaşırdım:

  1. Eşleme deseninin desen olarak çalışması için alıntılanması gerekir: P
  2. Seçenek --no-absolute-filenamesolmalıdır önce komut satırında desen
  3. Bu seçenek satır /aralığını dosya adlarından kaldırdığından, eşleşen kalıp da satır aralığını atlamalıdır/
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.