info cpio
ページから:
ディレクトリツリー全体をアーカイブしたい場合、findコマンドはcpioにファイルリストを提供できます。
% find . -print -depth | cpio -ov > tree.cpio
- 深さオプションは、Find がディレクトリ自体を印刷する前にディレクトリ内のエントリを印刷するように強制します。これにより、ディレクトリ名自体の前にディレクトリエントリを印刷して、制限的なディレクトリ権限の影響を制限します。
最後の部分はどういう意味ですか?ディレクトリ名自体の前にディレクトリエントリを印刷して、制限的なディレクトリ権限の影響を制限する方法は?
ベストアンサー1
ほとんどのcpio
実装は、愚かでアーカイブを解凍するときにディレクトリ権限を管理しません。
ディレクトリに書き込みアクセス権がなく、cpioアーカイブが通常の順序である場合、find
ディレクトリはcpio
アーカイブの最初の場所にあり、cpio
最初にアーカイブから抽出されます。これらの「読み取り専用」ディレクトリを解凍して権限を付与すると、ディレクトリの内容が後でアーカイブに表示され、解凍時にそのディレクトリにファイルを配置する権限がありません。
この
cpio
問題に対する 1 つの解決策は、ディレクトリの内容を最初に含めて、関連ディレクトリをコンテンツの後ろに含むアーカイブを作成することです。これにより、cpio
不足しているディレクトリがデフォルトの権限で作成され(不足して-d
いるディレクトリの作成が呼び出された場合)、その中のファイルがアーカイブから抽出され、ディレクトリがアーカイブに表示されると、権限は「読み取り専用」です。cpio
別の解決策は、読み取り専用ディレクトリでもファイルを生成できるため、愚かなroot
実装を使用してアーカイブを抽出することです。root
3番目の解決策は、社内エミュレーションなどの
cpio
最新の実装を使用することです。アーカイブのディレクトリ権限を覚えていますが、最初に中間書き込み権限を持つディレクトリを作成してください。中間書き込み権限を持つディレクトリにアーカイブからファイルを抽出した後、記憶された実際のディレクトリ権限設定が遅れました。cpio
star
star
star