tarやzipコマンドで特定のファイルを除く
$ tree -a
.
└── img
├── .DS_Store
├── eroero.png
└── himitu
├── .DS_Store
└── hentai.jpg
2 directories, 4 files
こんなディレクトリ構成があったとして。
zipの場合
.DS_Storeがじゃま
$ zip -r img.zip img -x '*.DS_Store'
adding: img/ (stored 0%)
adding: img/eroero.png (deflated 0%)
adding: img/himitu/ (stored 0%)
adding: img/himitu/hentai.jpg (deflated 0%)
ディレクトリを含めてのマッチングのようなので、*を付けてどのディレクトリ配下の.DS_Storeでもマッチするようにする。
himitu配下も要らんわ
$ zip -r img.zip img -x '*.DS_Store' 'img/himitu/*'
adding: img/ (stored 0%)
adding: img/eroero.png (deflated 0%)
himituディレクトリ以下全ての指定でhimituディレクトリ自体も除外される。
逆に'img/himitu'とやると除外されない。
tarの場合
.DS_Storeがじゃま
$ tar czvf img.tgz --exclude .DS_Store img
a img
a img/eroero.png
a img/himitu
a img/himitu/hentai.jpg
ファイル名でマッチングするようなので、.DS_Storeだけでよい。
Macの場合、--excludeは圧縮対象より前に書かないといけないのが面倒。
himitu配下も要らんわ
$ tar czvf img.tgz --exclude .DS_Store --exclude img/himitu img
a img
a img/eroero.png
zipと違ってディレクトリを指定する。