Next: Cleaning Up, Previous: Viewing And Editing, Up: Common Tasks
find
で生成したファイルリストを,ファイルアーカイブプログラムに渡
すことも可能です.GNU tar
とcpio
は,どちらも標準入力からファ
イル名のリストを読み込むことが可能です—ヌル(安全な方法),または,空白
(簡単だが危険なデフォルトの方法)のどちらかで分離します.ヌルで名前を分
離する方法を使用するため,‘--null’オプションを与えてください.ファ
イルアーカイブをファイルに保存したり,テープに書き出したり,ネットワー
ク越しの他のマシンに展開したりすることも可能です。
ファイルをアーカイブする一般的なfind
の使用方法は,ディレクトリツ
リー内のファイルリストをcpio
に送る方法です.所有者がディレクトリ
に書き込み権限が無い場合は‘-depth’を使用し,(その場合)ディレクトリ
の権限はそのコンテンツのリストア後にリストアされるため,そのコンテンツ
をアーカイブからリストアすることが可能です.こうするためにcpio
使
用した例がここにあります.特定のファイルのみアーカイブするために,より
複雑なfind
の式を使用することも可能です.
find . -depth -print0 | cpio --create --null --format=crc --file=/dev/nrst0
以下のコマンドを使用して,そのアーカイブをリストアすることが可能です.
cpio --extract --null --make-dir --unconditional \ --preserve --file=/dev/nrst0
同じことをtar
を使用して行なうコマンドは以下のようになります.
find . -depth -print0 | tar --create --null --files-from=- --file=/dev/nrst0 tar --extract --null --preserve-perm --same-owner \ --file=/dev/nrst0
一つのマシンから他のマシンに,ディレクトリをコピーする例は以下のように なります.
find . -depth -print0 | cpio -0o -Hnewc | rsh other-machine "cd `pwd` && cpio -i0dum"