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

cpio コマンド – アーカイブとの間でファイルをコピー、一覧表示、および抽出します

Linux/UNIX cpio (コピー イン/アウト) コマンドは、単一のファイルまたはアーカイブとの間でファイルをコピー、一覧表示、および抽出します。 cpio コマンドで使用できるオプションの一部を以下の表に示します。 cpio コマンドでは、o、i、または p オプションのいずれかを指定する必要があります。

オプション 説明
-o データをコピーします。
-i コピーからの抜粋。
-t コピーの内容を一覧表示します。
-v 冗長モード。
-p パス名を取得するためにコピーから読み取ります。
-a コピー後にファイルのアクセス時間をリセットします。

この投稿では、cpio コマンドの使用法を理解するためのいくつかの例について説明します。

例 1 :/home の内容をコピーするには、示されているように find コマンドを実行し、出力を /tmp/home.cpio にリダイレクトします。

# find /home | cpio -ov > /tmp/home.cpio
/home
/home/geek
/home/geek/CentOS-7.0-1406-x86_64-DVD.iso.3
/home/geek/CentOS-7.0-1406-x86_64-DVD.iso.4
/home/geek/.profile
/home/geek/CentOS-7.0-1406-x86_64-DVD.iso.2
/home/geek/.bashrc
...............................................

例 2 :home.cpio の内容を一覧表示します。

# cpio -itv < /tmp/home.cpio
-rw-rw-r--   1 geek geek     2556 Nov 29 13:03 /home/geek/ubuntu
-rw-rw-r--   1 geek geek     2255 Sep  1 14:32 /home/geek/.grive-last-sync.log
drwxr-xr-x  17 geek geek        0 Dec  5 15:46 /home/geek/Desktop
-rw-rw-r--   1 geek geek   357376 Sep 11 12:23 /home/geek/Desktop/mysql-classroom.doc
-rw-rw-r--   1 geek geek    43008 Sep 27 13:16 /home/geek/Desktop/linux_interview_question.doc
drwxrwxr-x   3 geek geek        0 Sep 12 13:59 /home/geek/Desktop/July-2014
-rw-rw-r--   1 geek geek     8147 Sep 11 13:04 /home/geek/Desktop/July-2014/brainuse.php
-rw-rw-r--   1 geek geek    10885 Sep 11 13:16 /home/geek/Desktop/July-2014/news.php
drwxrwxr-x   2 geek geek        0 Sep 11 12:34 /home/geek/Desktop/July-2014/images
-rw-rw-r--   1 geek geek    13609 Sep 11 12:34 //cdn.thegeekdiary.com/home/geek/Desktop/July-2014/images/3.gif
-rw-rw-r--   1 geek geek   206334 Sep 11 12:34 //cdn.thegeekdiary.com/home/geek/Desktop/July-2014/images/July14-header.gif
-rw-rw-r--   1 geek geek     1736 Sep 11 12:34 //cdn.thegeekdiary.com/home/geek/Desktop/July-2014/images/2.gif
..............................................

例 3 :home.cpio からファイルを復元します。

# cpio -iv < /tmp/home.cpio

例 4 :ファイルを /home から /tmp/home.bkp という名前の新しいディレクトリに直接コピーします。

# find /home | cpio -pvd /tmp/home.bkp
/tmp/home.bkp/home/geek/ubuntu
/tmp/home.bkp/home/geek/.grive-last-sync.log
/tmp/home.bkp/home/geek/Desktop
/tmp/home.bkp/home/geek/Desktop/mysql-classroom.doc
/tmp/home.bkp/home/geek/Desktop/linux_interview_question.doc
/tmp/home.bkp/home/geek/Desktop/July-2014
............................................

例 5 :選択したファイルのみを home.cpio にコピーします。

# find . -iname *.php -print | cpio -ov >/tmp/home.cpio 
./Desktop/July-2014/brainuse.php
./Desktop/July-2014/news.php
./Desktop/July-2014/developer_section.php
./Desktop/July-2014/mysql1.php
............................

上記のコマンドは、home.cpio 内の「.php」拡張子を持つすべてのファイルをコピーします。

例 6 :「cpio -F」を使用して「.tar」アーカイブを作成しています。

# find . -iname *.php -print | cpio -ov -H tar -F /tmp/home.tar
./Desktop/July-2014/brainuse.php
./Desktop/July-2014/news.php
./Desktop/July-2014/developer_section.php
./Desktop/July-2014/mysql1.php
./Desktop/July-2014/index.php
............................................

上記のコマンドは、「cpio -F」を使用して、拡張子が「.php」のすべてのファイルの tar アーカイブ「home.tar」を作成します。

例 7 :cpio を使用して「.tar」ファイルの内容を一覧表示します。

# cpio -it -F /tmp/home.tar
Desktop/July-2014/brainuse.php
Desktop/July-2014/news.php
Desktop/July-2014/developer_section.php
Desktop/July-2014/mysql1.php
Desktop/July-2014/index.php
Desktop/July-2014/linux1.php
..................................

例 8 :cpio 経由で「.tar」アーカイブを抽出します。

# cpio -idv -F /tmp/home.tar


Linux
  1. MySQL、PHP、Apacheの設定ファイルを見つける方法

  2. ディレクトリとサブディレクトリ内のファイル数を見つける方法

  3. を除くすべてのファイルを一覧表示するコマンド。 (ドット) と .. (ドット ドット)

  1. Linuxでコマンドラインからファイルとディレクトリを削除する方法

  2. Linuxでコマンドラインからファイルを分割して結合する方法

  3. コマンドラインからPerl/PHPスクリプトを実行する

  1. Linuxでのコマンドの検索(ファイルとディレクトリの検索)

  2. PHPからシェルコマンドが存在するかどうかを確認する方法

  3. Macのコマンドラインから現在のフォルダーとすべてのサブフォルダーの.DS_STOREファイルを削除します