Linux 如何在终端中将多个TAR解压到其文件名文件夹中

Linux 如何在终端中将多个TAR解压到其文件名文件夹中,linux,tar,Linux,Tar,例如,我有1000个tar文件。(n0001.tar~n1000.tar) 我想解压每个文件名中的每个文件。(n0001.n0001/文件夹中的tar内容) 如何在一个终端命令中执行此操作 我认为这个命令可以修改 for F in alcatelS*.tar; do tar -xvf "$F" done 您可以使用参数扩展从文件名中删除扩展名: for F in alcatelS*.tar; do dir=${F%.tar} ( mkdir "$dir" &&

例如,我有1000个tar文件。(n0001.tar~n1000.tar) 我想解压每个文件名中的每个文件。(n0001.n0001/文件夹中的tar内容)

如何在一个终端命令中执行此操作

我认为这个命令可以修改

for F in alcatelS*.tar; do
    tar -xvf "$F" 
done

您可以使用参数扩展从文件名中删除扩展名:

for F in alcatelS*.tar; do
    dir=${F%.tar}
    ( mkdir "$dir" && cd "$dir" && tar -xvf ../"$F" )
done

cd
发生在子shell
(…)
中,因此循环的工作目录不会更改。

循环的结果是什么??