Zip

更改工作目錄

  • January 26, 2018

我正在嘗試壓縮目錄

/home/cyrus/sql

我想在壓縮文件夾時更改工作目錄:

/ $ zip -b /home/cyrus sql.zip /home/cyrus/sql

但是當我檢查 zip 文件時:

/ $ unzip -l sql.zip

Archive:  sql.zip
 Length      Date    Time    Name
---------  ---------- -----   ----
       0  2013-05-30 10:59   home/cyrus/sql/
 1776642  2013-05-23 10:22   home/cyrus/sql/wordpress.sql
---------                     -------
 1776642                     2 files

根文件夾應該是sql. 我做錯了什麼?

來自man zip

-b path

 --temp-path path

使用臨時 zip 存檔的指定路徑。例如:

zip -b /tmp stuff *

將臨時 zip 存檔放在目錄 /tmp 中,完成後將 stuff.zip 複製到目前目錄。當更新現有存檔並且包含此舊存檔的文件系統沒有足夠的空間來同時保存舊存檔和新存檔時,此選項很有用。在某些情況下流式傳輸以避免需要數據描述符時,它也可能很有用。請注意,使用此選項可能需要 zip 在完成後將存檔文件複製到目標文件系統需要額外的時間。

預設情況下zip儲存相對於目前目錄的完整路徑。如果您希望您的 zipfile 將您的sql目錄作為根目錄,您需要從該/home/cyrus目錄執行命令。

如果要給zip定目錄的內容並將zip文件儲存在目前目錄中,可以這樣寫:

(cd /some/dir && zip -r - dir-there) > file.zip

引用自:https://unix.stackexchange.com/questions/77605