Macでzipファイルを作成すると、不要な「__MACOSX」フォルダや「.DS_Store」ファイルが含まれることがあります。これらはWindowsや他の環境では不要なため、削除する方法を紹介します。
1. 不要なファイルが含まれる理由
- 「__MACOSX」フォルダ:MacのFinderが生成するメタデータを含む隠しフォルダ。
- 「.DS_Store」ファイル:フォルダの表示設定を保存するためのファイル。
これらのファイルは、WindowsやLinux環境では意味がなく、邪魔になることがあるため、削除するのが望ましいです。
2. zip作成時に不要ファイルを除外する方法(推奨)
ターミナルを使って以下のコマンドを実行すると、不要なファイルを含まないzipファイルを作成できます。
zip -r archive.zip folder_name -x "__MACOSX/*" "*.DS_Store"
このコマンドでは、対象フォルダをzip圧縮する際に「__MACOSX」と「.DS_Store」を除外しています。
3. 既存のzipファイルから不要ファイルを削除する方法
既に作成されたzipファイルから不要なファイルを削除する場合、以下の手順を実行します。
1.zipファイルを解凍
unzip archive.zip -d temp_folder
2.不要なファイルを削除
find temp_folder -name "__MACOSX" -or -name ".DS_Store" | xargs rm -rf
3.再度zipファイルを作成
cd temp_folder zip -r ../clean_archive.zip .
この方法を使うと、不要なファイルを除去したzipファイルを作成できます。
4. 自動で削除するシェルスクリプトを作成
何度もこの作業を行う場合、以下のシェルスクリプトを作成して自動化すると便利です。
#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: $0 <zip-file>"
exit 1
fi
unzip "$1" -d temp_folder
find temp_folder -name "__MACOSX" -or -name ".DS_Store" | xargs rm -rf
cd temp_folder
zip -r "clean_$1" .
cd ..
rm -rf temp_folder
echo "Cleaned zip file created: clean_$1"
スクリプトのポイント
- 引数チェックを追加し、正しい使い方を促す。
- zipファイル名を動的に変更し、元ファイルを上書きしないようにする。
- 不要なフォルダを確実に削除。
このスクリプトを使用すると、簡単に不要ファイルを削除したzipを作成できます。
5. まとめ
✅ 新しくzipを作成する場合:zip -r archive.zip folder_name -x "__MACOSX/*" "*.DS_Store"
✅ 既存のzipを整理する場合:zipを解凍後、不要ファイルを削除し再圧縮
✅ 自動化する場合:シェルスクリプトを活用
これで、不要な「__MACOSX」や「.DS_Store」ファイルを簡単に削除できます!