如何提取 tarball,跳過一些主要目錄?

如何提取 tarball,跳過一些主要目錄?

我正在使用以下命令歸檔資料夾:

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/是兩個路徑組件,因此2in --strip-components

如果您不確定 tarball 中的內容,請使用以下t選項:

tar tjf forum.tar.bz2

透過管道傳輸,less以便您可以使用箭頭鍵進行捲動。

關於所使用的選項的一般說明:

  • x- 提取 tarball,我總是將其作為第一個選項,因為查看命令的作用是最合乎邏輯的
  • c- 創建一個 tarball
  • t- 列出 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" .

相關內容