ディレクトリを除外し、ディレクトリを圧縮する方法は?


32

私は、サブディレクトリとファイルを除くディレクトリを圧縮する必要があります。私はこれを使用しました:

zip -r zipfile.zip . -x ".*" -x "app/bower_components" -x "node_modules" -x "*.zip" -x "node_modules"

成功なし; フォルダーアプリ内にあるnode_modules間、主要なフォルダーにbower_componentsあります


あなたの結果は何ですか、あなたの期待される結果は何ですか?
デン

すべてのサブディレクトリまたはそれらの一部のみを除外しますか?
セルギーKolodyazhnyy

回答:


36

私は単にあなたが望むものを推測します。

-x ".*"

ドットで始まるすべてのファイルを除外します

次のようにします:

-x .\*

すべてのファイルを除外する(ファイル名にドットを含む)

次のようにします:

-x \*.\*

-

-x "app/bower_components" -x "node_modules"

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

次のようにします:

-x app/bower_components/\* -x node_modules/\*

-

-x "*.zip"

すべてのzipファイルを除外する

次のようにします:

-x \*.zip

node_modulesを2回除外します


2
ジップ-r *アプリ/ * -x \アプリ/ bower_components / * -x \ node_modules / * -x * .zipファイル:私はそれは、様々なポストを使用することに着いてしまったおかげで
arpho

それは私のために働いているように見えるよう@arpho上記のコメントが...答えなければなりません
chesedo

7

このような何かがトリックを行う必要があります:

zip -r zipped.zip dir1/ -x */\.* *.git* \.* *.zip *.csv *.json *.rb *.bak *.swp *.back *.merge *.txt *.sh dir1/node_modules/**\* dir1/bower_components/**\* dir1/dist/**.*

以下-xは、除外するディレクトリとファイル(拡張子)タイプのリストです。


これが**\*再帰的除外の対象であることがわかりました。どうもありがとう。
ドク・トラン

6

ディレクトリがgitリポジトリであると仮定すると(そして、質問から判断すると、そうである可能性が非常に高い)、.gitignoreファイルに除外するディレクトリを追加し、git archiveコマンドを使用してディレクトリの内容を圧縮できます。

git archive --format=zip HEAD -o zipfile.zip

あなたの例では、.gitignoreファイルは次のようになります。

node_modules
app/bower_components

3

これは、Ubuntu 16.04で完璧に機能します。

sudo zip -r /home/user/backup/$(date +"%Y-%m-%d")/home_user.zip /home/user -x "*backup*" -x "*.cache*" -x "*test*"

0

すべてのプロジェクトで、次のようにnode_modulesをスキップします。

for i in */; do zip -r "${i%/}.zip" "$i" -x "*/\node_modules/*" ; done
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.