我正在尝试结合两个选项来创建 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/网站/html/file1.html
- /var/www/网站/html/file5.html
- /var/www/网站/html/file32.html
等等。
我该如何解决这个问题?
答案1
使用 时,Tar 的工作方式相反-T
。它会存档包含完整路径的文件。如果您不想要路径,可以在提取时删除它,例如,
创建 tarball
tar -C /var/www/website html -cvzf html.tgz -T /tmp/htmllist.txt
提取 tarball
tar -xvf html.tgz --strip-path=3
这将从输出路径(即 /var/www/website)中删除三个组件。