web-dev-qa-db-ja.com

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

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

これまでのところ私はこれを持っています:

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

それでもうまくいかないようです。

私も試した

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

ただし、それでもignoreDir1およびignoreDir2内のサブディレクトリは含まれます。

除外したいディレクトリのサブディレクトリ構造はかなり充実しているので、各ディレクトリを-x引数に単純に追加することはできません。

誰もがこれを行う方法を知っていますか?

102
sulman

私はとても親切でした!

私が必要とする実際のコマンドは次のとおりです。

Zip -r myarchive.Zip dir1 -x dir1/ignoreDir1/**\* dir1/ignoreDir2/**\*
119
sulman

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

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

ノート:

- これは除外するディレクトリとその中のすべてのファイルの両方を除外しました。

- 除外するディレクトリへのフルパスを使用する必要があります。

63
pathfinder

次のようになります

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%)
6
ericn

@sulmanを使用して:

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

zipアーカイブにはdir1/ignoreDir1/emptyフォルダを含めます。

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

うまくいくでしょう、dir1だけの代わりに、先頭の**を使ってサブフォルダーを検索することもできます。

6
Gianluca P.

他の答えと同じですが、ディレクトリの内容をすべて除外するのではなく、ディレクトリを完全に除外します。

Zip -r myarchive.Zip dir1 -x dir1/ignoreDir1/\* dir1/ignoreDir2/\*
1
Richard Gomes

私はこれが David R Heffelfinger から働くことがわかりました:

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

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

0
Rick Ehrahrt