cpio basic extractコマンド、 'tar xzvf'相当?


12

Unixソフトウェア配布を圧縮されたcpioファイルとして受け取りました。ファイルを抽出するのに最適なコマンドは何ですか?


あなたはman cpio何を見ましたか?

5
-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 --pattern-file =- -only-verify-crc --append --link --absolute-filenames --no-absolute-filenames --null --reset-access-time --dereference --owner = --make-directories --preserve-変更時--no-preserve-owner --sparse --unconditional-
マークハリソン

回答:



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

これは古い質問ですが、Googleでよく見られるので、更新するかもしれないと思いました。一般に受け入れられている答えに同意しますが、マシン上の重要なシステムファイルを上書きするつもりがない限り、「-no-absolute-filenames」を追加する必要があります。また、個人的には、「gzip -cd」や「gunzip -c」よりも「zcat」の方が好きです。

最後に、デバイスノードを含むルートファイルシステムを抽出する場合は、cpioをルート(sudoなど)として実行する必要があることに注意してください。



0

たとえば、/ etc / httpd /のアーカイブされたコンテンツを現在のディレクトリに抽出し、サブディレクトリ./etc/httpd/を作成するには

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

受け入れられた答えとマットはどちらも私にとって有益でしたが、3つの詳細のためにしばらく困惑しました:

  1. パターンとして機能するには、一致するパターンを引用する必要があります:P
  2. オプション--no-absolute-filenamesは、コマンドラインのパターンの前にある必要あります
  3. このオプションは/ファイル名から先頭を削除するため、一致するパターンは先頭も省略する必要があります/
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.