從檔案清單建立 tar 檔案並刪除完整路徑

從檔案清單建立 tar 檔案並刪除完整路徑

我正在嘗試結合兩個選項來創建 tar 存檔,但它們不能很好地協同工作。我不知道出了什麼問題。

我用:

tar -C /var/www/website html -cvzf html.tgz -T /tmp/htmllist.txt

如果我僅使用 -C 選項,它會建立一個僅包含相對路徑「./html/」的 tar 存檔,但包含該資料夾內的所有檔案。我不想要這個。

然後,如果我只使用 -T 選項,它會建立一個僅包含所需檔案的 tar 存檔,但路徑是絕對路徑「/var/www/website/html/whatever.html」。我也不想要這個。

我想要兩者的結合,但不知何故它不起作用。

資料夾結構為:

/var/www/website/html/
  • 很多 .html 文件

/tmp/htmllist.txt 資料夾包含以下行:

  • /var/www/website/html/file1.html
  • /var/www/website/html/file5.html
  • /var/www/website/html/file32.html

等等。

我該如何解決這個問題?

答案1

使用時 Tar 的工作方式相反-T。它歸檔文件,包括完整路徑。如果您不需要該路徑,請在提取時將其刪除,例如,

建立壓縮包

tar -C /var/www/website html -cvzf html.tgz -T /tmp/htmllist.txt

提取壓縮包

tar -xvf html.tgz --strip-path=3

這將從輸出路徑中移除三個元件,即/var/www/website。

相關內容