2011-07-19 10:19:13 +0000 2011-07-19 10:19:13 +0000
121
121

Unix の zip ディレクトリだが、特定のサブディレクトリ (およびその中のすべてのもの) を除外する

ディレクトリをzipで圧縮しようとしているのですが(SSH経由でUnix上で)、いくつかのサブディレクトリ(とその中のすべてのファイルとディレクトリ)を除外する必要があります。

今のところこんな感じです。

zip -r myarchive.zip dir1 -x dir1/ignoreDir/**/*

これはうまくいかないようです。

zip -r myarchive.zip dir1 -x dir1/ignoreDir1/* dir1/ignoreDir2/*

も試してみましたが、これでも ignoreDir1 と ignoreDir2 の中にサブディレクトリが含まれています。

この方法を知っている人はいますか?

回答 (7)

134
134
134
2011-07-19 10:32:23 +0000

もう少しだったのに!

実際に必要なコマンドは:

zip -r myarchive.zip dir1 -x dir1/ignoreDir1/ **\* dir1/ignoreDir2/** \*
``` です。
73
73
73
2012-10-31 11:43:43 +0000

私の特定のシステムでは、ディレクトリを除外するために、除外するディレクトリを引用符で囲む必要がありました。

zip -r myarchive.zip dir1 -x "dir1/ignoreDir1/*" "dir1/ignoreDir2/*"

注意:

– これは除外するディレクトリとその中の全てのファイルを除外します。

– 除外したいディレクトリへのフルパスを使用しなければなりません!

9
9
9
2013-10-30 11:31:16 +0000

を使用している @sulman さん。

zip -r myarchive.zip dir1 -x dir1/ignoreDir1/\*\*\* dir1/ignoreDir2/\*\*\*

は、まだzipアーカイブにdir1/ignoreDir1/空のフォルダを含みます。

zip -r myarchive.zip dir1 -x dir1/ignoreDir1\*\* dir1/ignoreDir2\*\*

will do the trick, you can also use a leading *** to search in subfolders instead of only dir1

7
7
7
2012-09-17 05:00:36 +0000

zip -r myarchive.zip dir1 -x dir1/ignoreDir1* dir1/ignoreDir2*

何のために**を必要としたのか、@sulman?

以下のように、私にとっては魅力的に働く。

[root@ip-00-000-000-000 dir1]# ls -lrt dir1/ 
total 16
drwxr-xr-x 2 root root 4096 Oct 31 07:38 ignoredir1
drwxr-xr-x 2 root root 4096 Oct 31 07:38 ignoredir2
drwxr-xr-x 2 root root 4096 Oct 31 07:39 dir3
-rw-r--r-- 1 root root 8 Oct 31 07:39 test.txt

[root@ip-00-000-000-000 temp]# zip -r dir1.zip dir1 -x dir1/ignoredir1\* dir1/ignoredir2\*
  adding: dir1/ (stored 0%)
  adding: dir1/dir3/ (stored 0%)
  adding: dir1/dir3/test3.txt (deflated 13%)
  adding: dir1/test.txt (stored 0%)
1
1
1
2016-01-22 14:39:17 +0000

他の回答と同じですが、ディレクトリのすべてのコンテンツを除外するのではなく、ディレクトリを完全に除外します。

zip -r myarchive.zip dir1 -x dir1/ignoreDir1/\* dir1/ignoreDir2/\*
0
0
0
2014-10-03 18:28:57 +0000

David R Heffelfinger ](http://mail.ensode.net/roller/dheffelfinger/entry/excluding_directories_from_zip_files)からこれが動作することがわかりました。

zip -r myarchive.zip dir1 -x dir1/ignoreDir1\* dir1\ignorDir2\*

ディレクトリとその内容を除外しました。

-1
-1
-1
2015-12-01 13:29:01 +0000

私の場合はうまくいきました: zip -9 -r ~/folded.zip online -x folder/folder2/folder3/foldern/ *****.

アスタリスクをエスケープしなければならないようです。