Linux 对于返回的带“的循环”&燃气轮机&引用;

Linux 对于返回的带“的循环”&燃气轮机&引用;,linux,Linux,我想提取目录中的所有tar.gz文件 我已在互联网上搜索并使用以下命令: for i in *.tar.gz; do tar -xzvf $i; done 但是,终端在下一行返回了> 有人能告诉我这里的情况吗?我真的非常感谢你的帮助。嗯,我认为你的解决方案应该行得通。你可以试试更简单的 ls *.tar.gz | xargs -L 1 tar -xzvf 试试这个 find -name '*.tar.*' | xargs -I% tar -xvf % 我认为您可能需要为zip文件指定输出文

我想提取目录中的所有tar.gz文件

我已在互联网上搜索并使用以下命令:

for i in *.tar.gz; do tar -xzvf $i; done
但是,终端在下一行返回了>


有人能告诉我这里的情况吗?我真的非常感谢你的帮助。

嗯,我认为你的解决方案应该行得通。你可以试试更简单的

ls *.tar.gz | xargs -L 1 tar -xzvf
试试这个

find -name '*.tar.*' | xargs -I% tar -xvf %

我认为您可能需要为zip文件指定输出文件夹。 这就是>通常的含义

for i in *.tar.gz; do tar xvzf $i -C path/to/output/directory; done

几周前我用它的时候,它起了作用

tar.gz文件的名称中是否有空格或特殊字符?猜猜看,试试这个:

for i in *.tar.gz; do tar -xzvf "$i"; done

没有人建议对带有空格的文件名使用find-print0 | xargs-0,如下所示:

/tmp/foo$ ls -1
a.tar.gz
b.tar.gz
c and d.tar.gz
/tmp/foo$ find . -name "*.tar.gz" -print0 | xargs -0 -I{} tar -xzvf {}
a
c
d
b
/tmp/foo$ ls -1
a
a.tar.gz
b
b.tar.gz
c
c and d.tar.gz
d

您的解决方案将在我的输入数据上失败,因为文件“c和d.tar.gz”包含一个空格,但这可能不是您遇到的错误。A.M.D.的那一个可以用。

这里不可复制。嗨,n.M.,你能进一步解释一下吗?在我的机器上,这条线并不像你说的那样。(这就是“不可复制”通常的意思。)它不显示任何
。事实上,它只是按照预期的方式工作,我看不出有什么理由不工作。您的命令看起来不错。当shell命令不完整时,通常会出现
提示,本质上要求您键入其余的命令(例如,如果您要取消
done
)。我怀疑还有另一个问题。您确定这就是您键入的命令(例如,您是否省略了分号或其他内容)?你是打字还是复制粘贴?您可以发布
ls
的输出吗?您正在使用什么shell(发布
echo$0
的输出)?仅当当前目录不可写时才需要此命令。@JasonC现在所有内容都是f9