cpio 基本抽出コマンド、「tar xzvf」と同等ですか?

cpio 基本抽出コマンド、「tar xzvf」と同等ですか?

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

答え1

gzip -cd foo.cpio.gz | cpio -idmv
  • i : 抽出(入力)
  • d : ディレクトリを作成する
  • m : mtime を保存する
  • v : 詳細

答え2

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

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

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

答え3

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

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

承認された回答と Matt の回答はどちらも私にとって役に立ちましたが、次の 3 つの詳細のせいでしばらく困惑しました。

  1. 一致するパターンは、パターンとして機能するように引用符で囲む必要があります :P
  2. オプション--no-absolute-filenames先行するコマンドライン上のパターン
  3. このオプションはファイル名の先頭を削除するので/、一致するパターンも先頭を省略する必要があります。/

答え4

このWikipediaのページcpio良いメモがいくつかあります。
詳細については、cpioマニュアル

同じWikipediaページからのリンクtarアーカイブとの比較について議論するそして、
ここに例がありますフォーマットcpioを使用するtar

関連情報