多くのファイルを含むcpioアーカイブがありますが、ファイル全体ではなく1つのファイルのみを抽出できます。tar
ただ使用することができますが、動作しませtar -xf archive.tar path/to/file
んcpio
。
cpio -i < archive.cpio path/to/file
bash: path/to/file: No such file or directory
アーカイブから個々のファイルを抽出する方法を知っている人はいますかcpio
?
答え1
ホームディレクトリ()が存在しない場合は、この-d
オプションを使用してcpio
ホームディレクトリ()を作成する必要があります。path/to
cpio -id < archive.cpio path/to/file
また、bsdtar
(FreeBSDの従来の方法tar
)圧縮するかどうかにかかわらず、cpioアーカイブを抽出する方法を知っています。
答え2
パイプラインでファイルをすぐに使用するには、スキップして-d
追加するだけです。--to--stdout
以下は過度の例です。 initramfs cpioで実行可能ファイルのMD5SUMを確認してください。
$ objdump -sj '.init.ramfs' ./usr/initramfs_data.o | \
tail -n +5 | \
cut -b1-44 | \
xxd -r | \
gunzip | \
cpio --to-stdout -i usr/bin/mount 2>/dev/null | \
md5sum
bffe60496ce15be471e7cfc04c14fac5 -
- 16進
tail
ダンプ前のライン終了objdump
cut
16進ダンプのASCII部分の除去xxd -r
un-hexdumps(16進数を2進数に)