我如何根据每个.tar的文件名解压缩目录中的所有.tar文件?

时间:2015-05-11 18:21:13

标签: tar

我可以使用以下命令对文件夹中的.zip文件执行此操作:

for f in "!"; do unzip -d "${f%*.zip}" "$f"; done

上述命令将给定文件夹中的所有.zip文件提取到子文件夹,其中包含相应.zip个文件的内容和名称。

但我无法找到一个对.tar文件执行相同操作的命令。请帮忙。

顺便说一下,我试图在使用WinSCP / putty的远程服务器上执行此操作。所以,我不能使用GUI软件。我需要一个命令,因此问题。

1 个答案:

答案 0 :(得分:0)

经过一些小小的摆弄后,我想出了for f in $(find -maxdepth 1 | grep .tar); do mkdir ${f%.tar}; tar -xaf $f -C ${f%.tar} ; done似乎可以工作,只要文件名不包含任何空格。我假设您希望将foo.tar中的目录命名为foo(无文件扩展名)。如果您希望将目录命名为foo.tar(带有文件扩展名),请尝试使用for f in $(find -maxdepth 1 | grep .tar); do mkdir $f ; tar -xaf $f -C $f ; done。 IIRC,远程访问客户端Cyber​​duck可以在GUI中处理压缩文件 - 因此,如果您使用GUI解决方案,则可以尝试使用。