web-dev-qa-db-ja.com

Linuxで解凍する「Macスタイル」

必要に応じて、Linux Mint MATEエディションを使用しています。

これがDropbox固有かどうかはわかりませんが、元々Macで作成された(そしてネストされたサブフォルダーがたくさんある)フォルダーのZipをDropboxからダウンロードし、Linuxマシンで解凍すると、完全に混乱します。 up:すべてのフォルダーに名前の小文字バージョンの重複があり、サブファイルは元のファイルではなく重複して表示されます。私のMacを所有している同僚の1人が同じZipを解凍した場合、それは問題ありません。

これは私が得るべきものです:

enter image description here

そして、これは私が実際に得るものです:

enter image description here

私の推測では、これはMacがファイル名で大文字と小文字を区別しないという事実に何らかの形で関連しているため、ファイルシステムのメタデータなどの間に奇妙な非互換性があります。

Macの解凍ツールの動作を複製する、または正しい結果を生成するlinuz解凍ツールを知っている人はいますか?メインフォルダに問題がない限り、そこに_MACOSXフォルダが残っていてもかまいません(これらは削除できます)。

6
Max Williams

問題は、Zipファイルがディレクトリ名に一貫性のない大文字と小文字のバリエーションを使用していることのように見えます。これはまさに ciopfs ファイルシステムの目的です。ディレクトリツリーの大文字と小文字を区別しないビューを提供します。 Ubuntuパッケージがあります。 ciopfsファイルシステムを一時ディレクトリにマウントして既存のディレクトリのビューを作成し、そのビュー内のZipを解凍すると、元のディレクトリにアーカイブが抽出されます。

mkdir ~/case-insensitive
ciopfs ~/temp ~/case-insensitive
cd ~/case-insensitive
unzip -x __MACOSX -x '__MACOSX/*' /path/to/Zip
cd ~/temp
fusermount -u ~/case-insensitive

それが何らかの理由で機能しない場合、私の次の候補は Python zipfile libraryexample )になります。