同様の質問がありましたが、探しているものが正確に見つかりませんでした。基本的に、サブディレクトリと多数のファイルを含む大きなディレクトリがあり、各ディレクトリとサブディレクトリに再帰的に移動して、各ファイルを個別に圧縮したいと思います。私はこの解決策を見つけましたが、それは私が望むものではありません:
find . -type f -execdir Zip '{}.Zip' '{}' \;
これにより、Zipファイルが元のディレクトリに出力されます。ただし、Zipファイルは完全に別のディレクトリにありますが、ディレクトリ構造は同じで、結果のZipファイルのみが必要です。誰かがこれを手伝うことができますか?
次のように、Zipファイルの場所への相対パスを前に付けることができます。
find . -type f -exec Zip -D '../zipdir/{}.Zip' '{}' \;
必要に応じて、ディレクトリ構造を作成するには、次のようにします。
find . -type d -exec mkdir -p '../zipdir/{}' \;
Zipファイルと結婚していない場合は、マウント可能なディレクトリツリー全体のsquashfsイメージを作成することもできます(特定のZipファイルを開いて調べてそこにあるものを確認する必要はありません)。多数の個別のZipファイルではなく、「ソリッド」アーカイブのようにツリー全体をまとめて表示するため、圧縮率も向上する可能性があります。
基本的には、squashfs-tools
パッケージ(Debian/Ubuntuではこれと呼ばれています。Linuxファミリごとに異なる名前である可能性があります)が必要です。
mksquashfs /some/directory archive.squashfs
そしてそれをマウント/表示/閲覧するには:
mount archive.squashfs /mnt/mountpoint -t squashfs
-tフラグはオプションの場合もあり、mountはタイプを自動的に把握するのに非常に優れています。 -o loop
フラグも必要ありませんが、必要な場合に備えて試してください。
http://tldp.org/HOWTO/SquashFS-HOWTO/creatingandusing.html を参照するか、 squashfsの使用方法 を検索してください。