web-dev-qa-db-ja.com

完全な属性を持つ閲覧可能な圧縮ファイルシステムアーカイブ?

おそらく、質問全体のバリエーションは次のようになります:Linuxファイルのアクセス許可とユーザー/グループフラグを保持するtar以外のアーカイブツールはありますか?

Ubuntuボックスにディレクトリツリーのアーカイブを作成したい。ディレクトリツリーは大きく、最初の実行はtar cvpzf archive.tgz /home/foo/bar5GBのアーカイブが作成されました。

すべてのアクセス許可とその他のフラグおよび特別なファイルも保持したい。

私は5GBのアーカイブで問題ありませんが、そのアーカイブの内部を見ると(圧縮されたtarアーカイブであるため)、最初に5GB全体を解凍する必要があります。 (または、アーカイブビューアで開くと表示されます。修正されてうれしいです。)

したがって、完全なファイルシステム属性と権利を保持し、コンテンツを参照するために解凍する必要のない「インデックス」を使用してアーカイブを作成しながら、ディレクトリ(ツリー)を「バックアップ」する方法が必要です。


編集: Whalleyの答え の後に、私がアーカイブと考えるものを指定する:

アーカイブは、単一のファイル、またはこのファイル内にfullおよびcomplete情報を運ぶ(小さな)ファイルのセットのいずれかです。 s。つまり、任意のファイルシステム(サイズが許す限り)で使用でき、DVDに書き込むことができ、splitすることができます(その後、この質問のポイントは実際に失われますが、それでも)、...

4
Martin

アーカイブの内容を印刷するためのtarのt関数について知っていますか?次のようなgzip圧縮アーカイブで使用できます。

tar ztvf archive.tgz

また、タイムスタンプやサイズを含む形式のような長いリストでファイルを印刷します。アーカイブを作成するときに2つのvオプションを使用すると、ファイルがアーカイブに追加されるときにファイルが(単なるリストではなく)長くリストされるため、次のようにしてインデックスを自動作成できます。一度にバックアップしている間:

tar cvvpzf archive.tgz /home/foo/bar > archive.tgz.index

2つのvオプションの使用に注意してください。他の多くのコマンドを使用すると、この方法で冗長性を高めることができます(たとえば、ssh)。

1
deltaray

私は何度もこの問題に遭遇しました。これが私が理解したことです。

Zip
.Zipファイルは、ほとんどのLinuxシステムにインストールされているZipユーティリティを使用して作成された場合、UNIXパーミッションとシンボリックリンクをサポートします。ただし、ハードリンクや拡張属性など、tarでサポートされている拡張機能allはサポートされていません。ただし、最初にその時点までアーカイブ全体を解凍しなくても、Zipアーカイブからファイルを抽出できるので、それがメリットです。

SquashFS
マウント可能な圧縮された読み取り専用ファイルシステムを探している場合、現在の最有力候補は SquashFS です。しかし、落とし穴があります...まあ、実際にはいくつかの落とし穴があります。具体的には:

  • SquashFSは比較的新しく、tarのようなツールほど広くサポートされていません。
  • 互いに互換性のない2つの異なるバージョンのツールによって生成された2つのオンディスクフォーマットがあります。あなたが正しいものを手に入れることを確認してください。
  • Fuseドライバーはありません。イメージをマウントするには、ご使用のバージョンのsquashfsのカーネル内サポートが必要です。
  • サポートツール(mksquashfsおよびunsquashfs)は非常に単純であり、tarで表示される幅広いオプションをサポートしていません。
  • ドキュメントはあまりありません。
4
tylerl

主な問題は

...そのアーカイブの内部を見るには...最初に5GB全体を解凍する必要があります! (または、アーカイブビューアで開くと表示されます...)

解凍する必要があるのは事実ですが、それはすべてのファイルをファイルシステムに「解凍」する必要があるという意味ではありません。

単一または複数のファイルを抽出するために、tarはアーカイブ全体を解凍しますが、引数としてリストされているファイル以外はすべて破棄します。
同様の方法で、ファイル名を-t--list)アーカイブ全体を解凍する必要がありますが、すべてのファイルコンテンツを破棄します。

アーカイブの開始時にインデックスがない理由を理解するには、tarが元々磁気テープデバイスで機能するように作成されていることを考慮に入れてください。したがって、名前はtar-テープアーカイバのようになります。テープでは、最後に次のファイルを追加したいのですが、インデックスを書き込むために最初に巻き戻したくありません。

2
Volker Siegel

「コンテンツを透過的に圧縮するマウント可能なLinuxファイルシステムを提供するfusecompressを調べることをお勧めします。このファイルシステムに保存されているファイルはオンザフライで圧縮され、Fuseでは圧縮ファイルとユーザーアプリケーションの間に透過的なインターフェイスを作成できます。」

ユーザーにとって、保存されたファイルは、圧縮されていないかのようにアクセスできます。

しかし、スペースがある場合は、ディレクトリツリーをコピーしてみませんか?よりシンプル。

別のオプションは、ディレクトリツリーをUSBドライブにコピーすることです。これにより、簡単にアクセスでき、ディスクのクラッシュから保護されます。

1
W_Whalley