2012-01-17 68 views
1

我試圖在centos 5中使用此ssh命令來壓縮文件夾和文件的完整目錄,但排除了下面的示例。它不工作。Zip命令用於排除目錄和文件

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

或這一個

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

它仍然只是拉鍊起來整個目錄和一切吧。我不想做DIR1 DIR2文件1文件2。

我需要知道正確的-x語法才能使排除功能正常工作。

+0

是的,這是一個ssh腳本的編程問題。 – sven30 2012-01-17 17:44:20

+0

Stack Overflow是編程和開發問題的網站。這個問題似乎與題目無關,因爲它不涉及編程或開發。請參閱幫助中心的[我可以詢問哪些主題](http://stackoverflow.com/help/on-topic)。也許[超級用戶](http://superuser.com/)或[Unix&Linux堆棧交換](http://unix.stackexchange.com/)會是一個更好的地方。 – jww 2018-01-01 01:08:39

+0

[Unix的zip目錄但排除特定的子目錄](https://superuser.com/q/312301/173513),[如何排除目錄和文件壓縮目錄?](https://askubuntu.com/q/371579 ),[如何在壓縮文件時排除目錄](https://unix.stackexchange.com/q/219101/56041)等等。 – jww 2018-01-01 01:08:48

回答

1

-x選項有點奇怪;您列出文件,從-x,並用@標誌結束:

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

我也嚴重懷疑你想在你的文件名\在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%) 

你可能更好地省略*和明確列出這些事情你做希望 ...包括

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

\最後只是延續到下一行;你可以把它全部在一行沒有尾隨\

+0

好,很奇怪。我從about.com得到了反斜槓,他們做了某種-x \ * *。0用於排除以.0結尾的所有文件。不知道。無論如何,我試過你的命令,它仍然無法正常工作。這是我的實際命令。 zip core-latest.zip -r * -x模板-x stats -x cp/includes/configure.php @ – sven30 2012-01-17 17:13:30

+0

應該只需要在頭部有一個'-x'和在末尾有一個'@'......並且,你真的在​​你壓縮的目錄中運行'zip'嗎? – BRFennPocock 2012-01-17 17:16:22

+0

here我的腳本: echo -n「輸入新版本(v1-1)」 閱讀版本 cd/home/core/www/ rm -rf core-latest - *。zip zip core- latest- $ version .zip -r * -x模板統計信息cp/includes/configure.php @ chown -R core.core core-latest- $ version.zip – sven30 2012-01-17 17:18:31

5

對我特別的系統,以排除目錄我不得不把在我排除的目錄報價和它的工作就像一個魅力:

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

注:

- 這既排除目錄排除和它裏面的所有文件。

- 必須使用的完整路徑要包括和排除的目錄!

- 只要排除是在該行的末尾如果使用膩子你不需要@符號

-1

,請按照下列步驟操作:

  1. 輸入目錄: $ cd directory_name並按回車鍵
  2. 寫命令:

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

zip之後使用.作爲當前目錄,*是通配符。

相關問題