「cpio」で「find -length」を使用する理由

「cpio」で「find -length」を使用する理由

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最新の実装を使用することです。アーカイブのディレクトリ権限を覚えていますが、最初に中間書き込み権限を持つディレクトリを作成してください。中間書き込み権限を持つディレクトリにアーカイブからファイルを抽出した後、記憶された実際のディレクトリ権限設定が遅れました。cpiostarstarstar

おすすめ記事