Answers:
mkdir -p /target/dir && tar -C /target/dir
mkdir -p /target/dir && tar -C $_
$_
是Bash中的一个特殊参数,它扩展为上一个命令的最后一个参数。
tar -xvf bash.html_node.tar.gz --one-top-level
从tar命令的手册页
--one-top-level[=DIR]
将所有文件解压缩到DIR中,或者如果不带参数使用,则解压缩到以归档文件的基本名称命名的子目录中(减去可以识别的标准压缩后缀
--auto-compress
)。
-----测试
tar zxvf ../aaa.tgz --one-top-level
aaa/
aaa/222
aaa/111
tree aaa
aaa/
├── 111
└── 222
//如果tgz名称与存档的root_dir相同,则没有其他效果
mv ../aaa.tgz ../bbb.tgz
tar zxvf ../bbb.tgz --one-top-level
aaa/
aaa/222
aaa/111
tree bbb
bbb
└── aaa
├── 111
└── 222
//如果tgz名称与存档的root_dir不同,则创建一个顶级目录