我有一个包含大约800个.tgz档案的目录,每个档案包含大约10个文件.实际上,我想将每个存档转换为同名的目录.是否有一个简单的一行命令来执行此操作,还是应该编写脚本?
sus*_*tus 27
我想你需要编写这个脚本.您可以使用tar -C选项指定提取所在的目录.
下面的脚本假定目录不存在,必须创建.如果目录确实存在,脚本仍然可以工作 - mkdir将失败.
tar -xvzf archive.tar.gx -C archive_dir
Run Code Online (Sandbox Code Playgroud)
例如
for a in *.tar.gz
do
a_dir=`expr $a : '\(.*\).tar.gz'`
mkdir $a_dir 2>/dev/null
tar -xvzf $a -C $a_dir
done
Run Code Online (Sandbox Code Playgroud)
yat*_*sek 11
如果GNU tar考虑到足够现代,那么这应该是这里的最佳答案:https : //unix.stackexchange.com/a/478341/34069
为简洁起见,这是摘录:
tar -xvf bash.html_node.tar.gz --one-top-level
Run Code Online (Sandbox Code Playgroud)
它将存档提取到以存档文件名命名的新目录中。