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と違ってディレクトリを指定する。