关于tar
命令
如果执行命令:
tar -czf numbers.tar.gz numbers
该numbers.tar.gz
文件是从numbers
- 在当前目录中创建的
但出于脚本目的- 通过测试 - 如果执行:
tar -czf ~/numbers.tar.gz /home/username/numbers
tar -czf /home/username/numbers.tar.gz /home/username/numbers
这两个命令都按预期工作,但总是出现以下消息:
- “tar:从成员名称中删除前导 `/'”
发生这种情况是因为至少有一条路径 - 在这种情况下,两者都具有/包含该/
字符。我知道这不是错误,但很好奇
问题
- 如何避免在终端中显示“tar:从成员名称中删除前导 `/'”消息?
我假设它是信息或警告消息,出于脚本目的,需要它定义tar.gz
要创建的路径和directory
要压缩的源 - 我不想在终端中看到该消息。有可能吗?有什么选择?
将绝对路径作为存档成员是一个坏主意。这就是为什么 GNU在默认情况下
tar
实际上删除了首字母/
(从存档成员名称和硬链接目标中,如果有的话)。如果您很高兴进行
tar
剥离但想删除警告,您可以自己进行剥离:或者:
对于存档成员,
numbers/file
而不是home/username/numbers/file
.您可以告诉
tar
不要使用--absolute-names
/进行剥离,-P
在这种情况下,您将/home/username/numbers/file
成为存档成员。在提取时,大多数
tar
实现也会/
默认去除该前导作为安全措施。如果您从/tmp/test
目录中提取它,文件将被提取为/tmp/test/home/username/numbers/file
它们是否存储在存档中为home/username/numbers/file
or/home/username/numbers/file
,除非您再次传递-P
/--absolute-names
选项(尽管如果您确实想要路径,则执行 acd /
或传递 a-C /
会更有意义被解释为相对于根,与绝对路径相同)。