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

exclude 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引数に追加することはできません

誰か方法を知っている人はいませんか?

  142  sulman  2011-07-19


ベストアンサー

惜しかった!

実際に必要なコマンドは

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

153  sulman  2011-07-19


私の特定のシステムでは、ディレクトリを除外するために、除外するディレクトリの周りに引用符を付けなければなりませんでしたが、それは魅力のように機能しました

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

Notes:

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

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

91  pathfinder  2012-10-31


@sulman using:

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

を使用すると、zip アーカイブに dir1/ignoreDir1/空のフォルダが含まれたままになります

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

を使用するとトリックを行うことができます。また、dir1だけではなく、サブフォルダ内を検索するために先頭の**を使用することもできます

10  Gianluca P.  2013-10-30


以下のようになります

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

7  ericn  2012-09-17


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

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

2  Richard Gomes  2016-01-22


Ubuntu Serverでは、このコマンドは、いくつかのフォルダを除いて、zipファイルのために動作しますが、少しの違いがあります

空のフォルダを保持せずにZIPしたい場合

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

もしあなたがZIPをしたいならば、空のフォルダを保管してください

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

By example:

zip -r testtt.zip uploads/2013/ -x uploads/2013/03/**\* uploads/2013/04/**\*
zip -r testtt.zip uploads/2013/ -x uploads/2013/03\* uploads/2013/04\*

0  JorgeM  2020-10-28


私はこれをDavid R Heffelfingerから動作するように見つけました

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

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

-1  Rick Ehrahrt  2014-10-03


私のために働いた:zip -9 -r ~/folded.zip online -x folder/folder2/folder3/foldern/*

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

-2  Francisco M  2015-12-01


タイトルとURLをコピーしました