
我正在嘗試結合兩個選項來創建 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。