我正在使用以下命令歸檔資料夾:
tar jcf "home/username/forum/forum.tar.bz2" /var/www/forum/
然後我使用以下方法提取:
tar jxf forum.tar.bz2 ./
它正確提取,但創建/home/username/forum/var/www/forum
資料夾。我需要做什麼才能將其提取到/home/username/forum
資料夾中?
謝謝
答案1
另外dv3500ea 的回答,您可以使用下一個命令來提取包含var/www/forum/
以下內容的tarball forum/
:
tar xjf forum.tar.bz2 --strip-components=2
var/
和www/
是兩個路徑組件,因此2
in --strip-components
。
如果您不確定 tarball 中的內容,請使用以下t
選項:
tar tjf forum.tar.bz2
透過管道傳輸,less
以便您可以使用箭頭鍵進行捲動。
關於所使用的選項的一般說明:
x
- 提取 tarball,我總是將其作為第一個選項,因為查看命令的作用是最合乎邏輯的c
- 創建一個 tarballt
- 列出 tarball 的內容j
- 使 tar 解壓縮 bzip2 壓縮的 tarball。這對於.bz2
擴充功能來說是多餘的,因此您也可以刪除此選項f
- 此選項需要一個檔案名稱作為參數,它是要提取的 tarball (tar xf file.tar.bz2
) 或建立的 tarball (tar cf file.tar.bz2
)
答案2
建立存檔時,請-C /var/www/
在建立存檔時將目前目錄變更為 /var/www。
tar jcf home/username/forum/forum.tar.bz2 -C /var/www/ forum
這將導致“forum”資料夾位於已存檔的頂層,因此當您運行時將直接提取到當前資料夾中:
tar jxf forum.tar.bz2 ./
答案3
快速(也可能是錯誤)的解決方案是在壓縮之前更改命令以更改目錄。 IE:
cd /var/www/forum; tar jcf "home/username/forum/forum.tar.bz2" .