GNU/Linux >> Linux の 問題 >  >> Linux

Linux cpio の例:cpio アーカイブ (および tar アーカイブ) を作成および抽出する方法

cpio コマンドは、アーカイブ ファイル (*.cpio または *.tar ファイルなど) の処理に使用されます。

cpio は「コピーイン、コピーアウト」の略です。

cpio は次の 3 つの操作を実行します。

  • ファイルをアーカイブにコピーする
  • アーカイブからのファイルの抽出
  • ファイルを別のディレクトリ ツリーに渡す

cpio は、アーカイブの作成中に標準入力からファイルのリストを取得し、出力を標準出力に送信します。

1. *.cpio アーカイブ ファイルの作成

cpio -ov を使用して、ファイルとディレクトリを含む *.cpio アーカイブを作成できます

$ cd objects

$ ls
file1.o file2.o file3.o

$ ls | cpio -ov > /tmp/object.cpio

上記のように、ls コマンドは 3 つのオブジェクト ファイル名を cpio コマンドに渡し、cpio は object.cpio アーカイブを生成します。

2. *.cpio アーカイブ ファイルの抽出

cpio 抽出:特定の *.cpio ファイルを抽出するには、以下に示すように cpio -iv を使用します。

$ mkdir output

$ cd output

$ cpio -idv < /tmp/object.cpio

3.選択したファイルで *.cpio アーカイブを作成

次の例では、*.c ファイルのみで *.cpio アーカイブを作成します。

$ find . -iname *.c -print | cpio -ov >/tmp/c_files.cpio

4. cpio -F を使用して *.tar アーカイブ ファイルを作成します

tar コマンドを効果的に使用する方法は既に知っています。

以下に示すように、cpio コマンドを使用して tar ファイルを作成することもできることをご存知ですか?

$ ls | cpio -ov -H tar -F sample.tar

上記のように、標準出力をリダイレクトする代わりに、オプション -F を使用して出力アーカイブ ファイル名を指定できます。

5. cpio コマンドを使用して *.tar アーカイブ ファイルを抽出します

以下に示すように、cpio コマンドを使用して tar ファイルを抽出することもできます。

$ cpio -idv -F sample.tar

6. *.tar アーカイブ ファイルの内容を表示

*.tar ファイルの内容を表示するには、次の手順を実行します。

$ cpio -it -F sample.tar

7.シンボリック リンクが指す元のファイルで *.cpio アーカイブを作成します

cpio アーカイブは、以下に示すように、シンボリック リンクが参照している元のファイルで作成できます。

$ ls | cpio -oLv >/tmp/test.cpio

8. *.cpio の復元中にファイル変更時刻を保持

以下に示すように、cpio アーカイブ ファイルを復元するときに、ファイルの変更時刻を保持できます。

$ ls | cpio -omv >/tmp/test.cpio

9. cpio を使用して Linux およびカーネル イメージ ファイルを操作する

initrd.img を表示、変更、および再作成する方法 – しばらく前に説明したように、cpio コマンドを使用して initrd.img ファイルを操作することもできます。

10.ディレクトリ ツリーを別のディレクトリにコピー

cpio を使用すると、中間アーカイブを作成せずに、1 つのディレクトリの内容を別のディレクトリにコピーできます。標準入力からファイル リストを読み取り、それをターゲット ディレクトリに渡します。

以下の例では、objects ディレクトリのファイルとサブディレクトリを /mnt/out ディレクトリにコピーします。

$ mkdir /mnt/out

$ cd objects

$ find . -depth | cpio -pmdv /mnt/out

上記の例では:

  • cpio オプション -p は、cpio がパス スルー モードを使用するようにします。 cpio -o を cpio -i にパイプするようなものです。
  • cpio オプション -d は、ターゲット ディレクトリに必要に応じて主要なディレクトリを作成します。

Linux
  1. Linuxでtar.xzファイルを抽出または解凍する方法

  2. アーカイブを作成および抽出するためのLinuxでの10のtarコマンドの例

  3. UNIX ar の例:C アーカイブ ファイル (*.a) を作成、表示、抽出、変更する方法

  1. Linux KVM をインストールしてゲスト VM を作成する方法と例

  2. Linux で gzip と bzip2 を使用してファイルとディレクトリを圧縮および抽出する方法

  3. Mac 上のディレクトリの Linux 互換 zip アーカイブを作成する方法

  1. Linuxでファイルを圧縮および抽出するための16のtarコマンド

  2. Linuxでファイルとディレクトリをアーカイブする方法[パート1]

  3. Linuxで.gzファイルと.tar.gzファイルを抽出する方法