おそらく、質問全体のバリエーションは次のようになるでしょう。tar
Linux ファイルの権限とユーザー/グループ フラグを保存するアーカイブ ツールは他にはありますか?
Ubuntu ボックスのディレクトリ ツリーのアーカイブを作成したいと考えています。ディレクトリ ツリーは大きく、最初の実行でtar cvpzf archive.tgz /home/foo/bar
5 GB のアーカイブが生成されました。
また、すべての権限、その他のフラグ、特殊ファイルも保持したいと思います。
5GB のアーカイブでも問題ありませんが、そのアーカイブの中身を見るには、圧縮された tar アーカイブなので、まず 5GB 全体を解凍する必要があります。(アーカイブ ビューアーで開くと、そのように見えますが、訂正していただければ幸いです。)
したがって、完全なファイルシステムの属性と権利を保持しながらディレクトリ (ツリー) を「バックアップ」し、その内容を参照するために解凍する必要のない「インデックス」を含むアーカイブを作成する方法が必要です。
編集:アーカイブとして私が考えるものを明確にした後、ウォーリーの答え:
アーカイブとは、単一のファイル、または(小さな)ファイルの集合であり、満杯そして完了このファイル内の情報。つまり、任意のファイルシステム上に保存でき (サイズが許せば)、DVD に書き込むことができ、split
(そうするとこの質問のポイントが本当に失われますが、それでも)、...
答え1
アーカイブの内容を印刷するための tar の t 関数をご存知ですか? 次のように gzip 圧縮されたアーカイブで使用できます。
tar ztvf archive.tgz
そして、タイムスタンプやサイズを含む長いリストのような形式でファイルを出力します。アーカイブを作成するときに 2 つの v オプションを使用すると、ファイルをアーカイブに追加するときに (単にリストするのではなく) 長いリストが表示されるため、次のようにして、1 回でバックアップしながらインデックスを自動的に作成できます。
tar cvvpzf archive.tgz /home/foo/bar > archive.tgz.index
2 つの v オプションの使用に注意してください。他の多くのコマンドでも、この方法で詳細度を上げることができます (たとえば、ssh)。
答え2
私は何度もこの問題に遭遇しました。私が解決した方法は次のとおりです。
ジップ
.zip
ほとんどのLinuxシステムにインストールされているzipユーティリティを使用して作成されたファイルは、UNIXパーミッションとシンボリックリンクをサポートします。ただし、全てハードリンクや拡張属性など、でサポートされている拡張機能tar
。ただし、その時点までのアーカイブ全体を最初に解凍しなくても ZIP アーカイブからファイルを抽出できるので、これは利点です。
スカッシュFS
マウント可能な圧縮読み取り専用ファイルシステムを探している場合、現在最有力候補はスカッシュFSしかし、落とし穴があります... まあ、実際にはいくつか落とし穴があります。具体的には:
- SquashFS は比較的新しいため、などのツールほど広くサポートされていません
tar
。 - ツールの 2 つの異なるバージョンによって生成された 2 つのオンディスク形式がありますが、これらは互いに互換性がありません。必ず正しいものを入手してください。
- FUSE ドライバーはありません。イメージをマウントするには、squashfs のバージョンに対するカーネル内サポートが必要です。
- サポートツール (
mksquashfs
およびunsquashfs
) は非常に単純であり、 で表示される幅広いオプションをサポートしていませんtar
。 - ドキュメントはあまり多くありません。
答え3
主な問題は、
... アーカイブの中身を見るには、まず 5GB 全体を解凍する必要があります。(アーカイブ ビューアーで開くと、そのように見えます...)
確かに解凍する必要があるのは事実ですが、すべてのファイルをファイルシステムに「解凍」する必要があるわけではありません。
単一または複数のファイルを抽出するには、tar
アーカイブ全体を解凍しますが、引数としてリストされているファイル以外はすべて破棄します。
同様に、ファイル名を-t
( --list
) でリストすると、アーカイブ全体を解凍する必要がありますが、ファイルの内容はすべて破棄されます。
アーカイブの先頭にインデックスがない理由を理解するには、tar
もともと磁気テープ デバイスで動作するように作られていることを考慮してください。そのため、名前はtar
テープ アーカイバのようなものです。テープでは、次のファイルを最後に追加したいので、インデックスを書き込むために先頭まで巻き戻したくないのです。
答え4
fusecompress を検討してみるといいでしょう。これは、「コンテンツを透過的に圧縮するマウント可能な Linux ファイル システムを提供します。このファイル システムに保存されたファイルはオンザフライで圧縮され、Fuse を使用すると、圧縮されたファイルとユーザー アプリケーションの間に透過的なインターフェイスを作成できます。」
ユーザーにとっては、保存されたファイルは圧縮されていないかのようにアクセスできます。
しかし、スペースに余裕があるなら、ディレクトリ ツリーをコピーするだけでいいのではないでしょうか。もっと簡単です。
もう 1 つのオプションは、ディレクトリ ツリーを USB ドライブにコピーすることです。これにより、簡単にアクセスでき、ディスク クラッシュから保護されます。