圧縮されたcpioファイルとしてUnixソフトウェア配布を受け取りました。ファイルを抽出するための最良のコマンドは何ですか?
gzip -cd foo.cpio.gz | cpio -idmv
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など)として実行する必要があることに注意してください。
cpio
のこのウィキペディアのページにはいくつかの良いメモがあります。
詳細については、 cpio
manual を参照してください。
同じウィキペディアのページからのリンク tar
アーカイブとの比較について説明します 。
そして、これが cpio
をtar
形式で使用 の例です。
たとえば、/ etc/httpd /のアーカイブされたコンテンツを現在のディレクトリに抽出するには、サブディレクトリ./etc/httpd/を作成します。
mkdir restored-etc-httpd
cd restored-etc-httpd
zcat archive.cpio.gz | cpio -idmv --no-absolute-filenames "*etc/httpd/*"
受け入れられた答えとマットの答えは両方とも私に役立ちましたが、3つの詳細のためにしばらく困惑しました:
--no-absolute-filenames
must precedeコマンドラインのパターン/
を削除するため、一致するパターンでも先頭の/
を省略する必要があります。