我必須使用命令 gzip (不是 tar - 這是必要的)創建一個存檔,並且該存檔應包含來自另一個目錄的檔案 - 例如,/etc。我嘗試使用命令
gzip myetc.gz /etc
但這沒有用。
答案1
gzip
適用於文件,而非目錄。因此,要建立您需要使用的目錄的存檔tar
(這將從多個檔案中建立一個 tarball):
tar cvf myetc.tar /etc
或者,對於 gzip 壓縮的檔案:
tar cvzf myetc.tar.gz /etc
答案2
Gzip 僅適用於單一檔案或串流 - 透過管道傳輸到 gzip 的資料。因此,您首先需要產生一個文件,就像使用 tar 一樣,然後您可以對其進行 gzip。另一種選擇是對所有單一檔案進行 gzip 壓縮,然後將其壓縮到一個檔案中。
這兩種解決方案都很愚蠢,不應該使用。您應該將 tar 與內建壓縮選項一起使用,並在一個命令中完成所有操作。
答案3
如果您確實沒有可用的 tar,您可以使用 gzip 使用選項(-r - 遞歸)來建立目錄的備份,但也許這並不完全是您所期望的...
如果您想保持原始目錄不可更改,首先您需要將目錄複製到另一個名稱。
#cp -a directory my_gzip_alone_backup
其次,您將遞歸地壓縮目錄中的所有檔案(-r)。
#gzip -r my_gzip_alone_backup
現在讓我們來看看 my-gzip-alone-backup 的內部。您不會像您期望的那樣擁有單一檔案 myfile.gz,而是遞歸地獲得許多 gzip 壓縮檔案。但由於符號鏈接,用 etc 來做這件事並不好...
要解壓縮目錄,可以使用gunzip 套用相同的邏輯。
另一種方法是將目錄轉換為單一文件,如果您沒有 tar 來執行此操作,但有 dd util,如本文中所示:https://askubuntu.com/questions/626634/converting-a-file-to-directory