Mac OS Xのコマンドライン「zip」ツールを使用してディレクトリおよびサブディレクトリ内のファイルを再帰的に圧縮し、すべてのサブフォルダーから.DS_Storeファイルを除外します


10

zipMac OS Xターミナルに付属のコマンドラインツールを使用してZIPファイルを作成しようとしています。現在のフォルダーの内容を再帰的に圧縮しますが、.DS_Storeファイルは除外します。私はこれを試しています:

zip -r myarchive.zip . -x .DS_Store

-x .DS_Store除外.DS_Store現在のフォルダではなく、再帰的に追加サブフォルダ内のファイル。すべての.DS_Storeファイルをすべてのサブフォルダーから除外するにはどうすればよいですか?

回答:


17

除外オプションにワイルドカードを追加する

zip -r myarchive.zip . -x "*.DS_Store"

ご回答有難うございます。それは機能しますが、なぜですか?:)。説明していただけますか?
OMA

*何やzipなどのパスの一部に展開を再帰的にファイルとそのディレクトリを圧縮します。そのため、./.DS_Storeその後./*/.DS_Storeもアーカイブから除外されます。
fd0

ああ、面白い。したがって、ワイルドカードの動作はWindowsの世界とは異なります。「*。DS_Store」は、「。DS_Storeで終わるすべてのファイル」を意味するだけです
OMA

1

ほとんどの場合、またはまたはなどのすべての隠しファイルを除外ます.DS_Store.git.gitignore

1つの簡単なコマンドですべてを処理し、すべてのファイルとサブフォルダーを再帰的に圧縮できます

zip -r archive.zip folder -x "*/\.*"

またはさらに良いことに、zshで関数を作成して人生を楽にします

open ~/.zshrc

エイリアスセクションに次のコードを追加します

function zip-visible(){
    zip -r $1 $2 -X -x "*/\.*"
}

zsh設定をリロードします

source ~/.zshrc

このように使う

zip-visible archive.zip folder

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.