2012-01-17 46 views
1

私はcentos 5でこのsshコマンドを使用して、ディレクトリフルアップフォルダとファイルを解凍しようとしていますが、以下の例は除きます。動いていない。ディレクトリとファイルを除外するZipコマンド

zip -r file.zip * -x dir1 -x dir2 -x file1 -x file2 

またはこれは1

zip -r file.zip * -x "dir1" -x "dir2" -x "file1" -x "file2" 

それはまだだけで全体のディレクトリとすべてのもの、それをzip圧縮。私はDIR1たくないdir2をFILE1 FILE2。

除外機能が機能するには、正しい-x構文を知る必要があります。

+0

はいこれはsshスクリプトのプログラミングに関する質問です。 – sven30

+0

Stack Overflowは、プログラミングおよび開発に関する質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[スーパーユーザ](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。 – jww

+0

[Unixのzipディレクトリだが特定のサブディレクトリは除外](https://superuser.com/q/312301/173513)、[ディレクトリを除外してディレクトリを圧縮する方法は?](https://askubuntu.com/q/371579) )、[ファイルを圧縮するときにディレクトリを除外する方法](https://unix.stackexchange.com/q/219101/56041)など – jww

答えて

1

-xオプションは少し奇妙です。あなたは-xで始まる、ファイルをリストし、@記号で終わる:

zip file.zip -r * -x dir1 dir2 file1 file2 @ 

私も真剣にあなたのパスがOKであることを確認してください...あなたがUnixシステム上のファイル名に\をしたい疑います。 /は通常のパス区切り文字です。

例:サブディレクトリで

mkdir tmp5 
cd tmp5 
touch a b c d e f g 
zip foo.zip -r * -x e f g @ 
    adding: a (stored 0%) 
    adding: b (stored 0%) 
    adding: c (stored 0%) 
    adding: d (stored 0%) 

、あなたは簡単にワイルドカードを使用して内容を省略することができますが、*は(空の)ディレクトリ自体が含まれるようになりようだ:

mkdir x y z 
touch {a,b,c} {x,y,z}/{a,b,c} 
zip foo.zip -r * -x c y y/* z z/* @ 
    adding: a (stored 0%) 
    adding: b (stored 0%) 
    adding: x/ (stored 0%) 
    adding: x/b (stored 0%) 
    adding: x/a (stored 0%) 
    adding: x/c (stored 0%) 
    adding: y/ (stored 0%) 
    adding: z/ (stored 0%) 

*を省略して明示的にリストすることをお勧めします。doが含まれています...

zip core-latest-$version.zip -r cp images include mobile stats \ 
    -x cp/includes/configure.php @ 

(最後の\は次の行に続きます。あなたは私が私の除外ディレクトリの前後に引用符を入れていたディレクトリを除外するために、私の特定のシステムの場合は、末尾\

+0

ok、weird。私はabout.comのバックスラッシュを得ました.0で終わるすべてのファイルを除外するために何らかの種類の-x \\ *。0を行いました。いい考えはありません。とにかく私はあなたのコマンドを試しても、それはまだ動作しませんでした。ここに私の実際の命令があります。 zip core-latest.zip -r * -x templates -x stats -x cp/includes/configure.php @ – sven30

+0

先頭に '-x'を1つ、最後に' @ 'を1つだけ必要とします。あなたが実際にあなたがジッパーしているディレクトリの中から 'zip'を実行していますか?ここ – BRFennPocock

+0

私のスクリプト:。 は-nエコー "新バージョンを入力します(V1-1)" 読み取りバージョン CD /ホーム/コア/ www /の RM -rfコア - 最新 - *ジップ ジップコアlatest- $バージョン.zip -r * -x templates stats cp/includes/configure.php @ chown -R core.core core-latest- $ version.zip – sven30

5

せずに1行にすべてを置くことができ、それが魅力のように働いた:

zip -r myarchive.zip target -x "target/exclude1/*" "target/exclude2/*" 

注:

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

- 含めるディレクトリと除外するディレクトリの絶対パスを使用する必要があります。

- 限り除外はあなたがパテを使用している場合は、@記号

-1

を必要としない行の末尾にあるとして、次の手順に従ってください。

  1. はあなたのディレクトリを入力します。 $ cd directory_nameを押して入力します
  2. Writeコマンド:

    $ zip -r file_name.zip . -x \*excludingfolderName\* 
    

の後zip現在のディレクトリに.を使用すると、*はワイルドカードです。

関連する問題