它不是重复的,其他stackexchange 上的问题是关于在创建存档时摆脱此消息。
-P
给定使用选项(以“/”开头)创建的档案,这是否可能?
--absolute-names
我有一个用“ ”(选项)创建的档案-P
- 以 / 为前导。
我想解压它,并剥离 / ( tar 默认执行此操作)。
这几乎是理想的,但我想保持沉默:
tar: Removing leading `/' from member names.
而不会删除其他消息(因此以暴力形式破解2>/dev/null
并不是解决方案)。
我找到了多种解决方案,可以在创建存档时消除此消息的干扰,但对于解包却没有。我知道,grep -v
但它会 (a) 隐藏 tar 中的错误代码 (b) 如果未删除有关 / 的消息,则会添加自己的错误代码。
这种情况可能会复制
cd /home/user/tmp
touch a.txt
mateusz@Grisznak:~/Desktop/tmp$ tar --create -P /home/user/tmp > a.tar
mateusz@Grisznak:~/Desktop/tmp$ tar --extract --file=a.tar
为了避免 XY 问题:我正在解压backup
gem 创建的档案(http://backup.github.io/backup/v4/)。
答案1
这似乎可以实现你想要的效果:
tar --extract --xform 's/^\///' --file=a.tar
根据手册页:
--transform, --xform EXPRESSION
use sed replace EXPRESSION to transform file names
因此它仍然会删除前导斜杠,但不会谈论它。