解压目录中的多个文件

解压目录中的多个文件

一个目录中有多个 .tar 文件。我正在尝试将它们全部提取出来。

以下命令有效

for a in $(ls -1 *.tar); do tar -xvf $a; done

但是当我尝试执行以下命令时,它会打印所有文件名但不执行任何操作。它不会提取 .tar 文件。

% tar -xvf *.tar
Solarized-Dark-Cyan-3.0.3.tar
Solarized-Dark-Green-3.0.3.tar
Solarized-Dark-Magenta-3.0.3.tar
Solarized-Dark-Orange-3.0.3.tar
Solarized-Dark-Red-3.0.3.tar
Solarized-Dark-Violet-3.0.3.tar

为什么会这样,因为unzip '*.zip'它适用于多个 .zip 文件。

答案1

unzip处理'*.zip'-style 参数,tar但不处理。可能有具有此功能的存档提取器,能够提取 tarball,但我不知道有任何。

您应该避免ls为此使用:

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

tar -xvf *.tar尝试从第一个 tarball 中提取第二个及更多 tarball,这通常不会执行任何操作。

相关内容