英文:
for: Command not found on gnome terminal?
问题
Here is the translation of your provided content:
长话短说:我有一个文件夹里面装满了1583个.tar
文件。每个.tar
文件只包含一个文件夹,我希望有一个只包含这些文件夹的文件夹。我尝试使用控制台命令来实现这个目标,因为我不知道如何让Python来完成这个任务。通过在网上查找信息,我得到了以下命令:
for file in ls *.tar do; do tar -xzf $file -C /path/to/destination/folder done
出现了错误:
for: command not found
对于这个问题我不太确定该怎么办。我到处查找关于如何在Linux终端中使用for循环的信息,但每个地方都只说:“写for x; do y
”,没有提供如何实际让这些东西工作的建议。
我听说很多关于Linux Bash和脚本等的东西...我不太理解这些东西。我需要执行某种仪式来让Bash工作吗?显然ls、cd等命令也是Bash的一部分?这些命令对我来说运行得很好,但for循环不行...
如果这些问题太基础的话,我真的对计算机不太懂。
感谢任何帮助!!
好的,它要求我写2个部分,我已经写了上面的部分之后,我想到了以下内容:
如上所述,我得到了以下命令:
for file in ls *.tar do; do tar -xzf $file -C /path/to/destination/folder done
手动使用tar -xzf
命令可以正常工作,甚至可以将文件放在正确的文件夹中。但我不想手动执行这个操作(因为有1500多个文件),而tar
命令不接受*.tar
作为输入 - 我查找了如何解决这个问题的方法,然后得到了我尝试使用的命令。
再次感谢!
Jude S
英文:
Long and short of it: I have a folder full of 1583 .tar
files. Each .ta
r file contains only one folder, and i want a folder full of only those folders. Trying to do this using console commands because i cant figure out how to get python to do it for me. By reading around online i've come up with the command
for file in ls *.tar do; do tar -xzf $file -C /path/to/destination/folder done
Error comes up:
for: command not found
Unsure what to do about this. Everywhere i look about how to get for loops to work in linux terminals and everywhere is just saying "
>write for x; do y
with no advice on how to actually get that stuff to work...
I'm hearing a lot about linux bash and scripting and stuff... I dont really understand what all these things are. Do i need to perform some ritual to get bash to work? Apparently ls and cd and stuff are part of bash too? Those are working fine for me, but for loops are not...
Sorry if this is really basic guys, i'm kind of computer illiterate.
Thanks for any help!!
--
ok it asked me to write 2 sections and i came up with the following after i had already written the above:
as stated before, I've come up with the command
for file in ls *.tar do; do tar -xzf $file -C /path/to/destination/folder done
Using tar -xzf
manually works just fine, even puts it in the right folder. But i dont want to just do that manually (because of the 1500+ files thing) and the tar
command wont take *.tar
as an input - I looked up how to solve this problem and was fed the command I tried to use as a fix.
Thanks again!!
Jude S
答案1
得分: 2
命令中存在一些语法错误。但是bash
应该能够理解for
。您确定您正在使用的是bash
而不是csh
或tcsh
吗?
为了确保(进行测试),您可以只需键入
bash
这将为您启动一个bash shell。
至于语法错误,命令可能应该是:
for file in *.tar ; do tar xzf "$file" -C /path/to/destination/folder ; done
另一方面,如果您想继续使用您的(t)csh,可以这样做:
foreach file ( *.tar )
tar xzf $file -C /path/to/destination/folder
end
英文:
There are some syntax-errors in the command. But bash
should understand for
. Are you sure you are using bash
and not a csh
or tcsh
?
To be sure (for test purposes) you can just type
bash
and that will start a bash-shell for you.
As for the syntax-errors: the command should probably be:
for file in *.tar ; do tar xzf "$file" -C /path/to/destination/folder ; done
On the other hand, if you want keep using your (t)csh, it would be something like:
foreach file ( *.tar )
tar xzf $file -C /path/to/destination/folder
end
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论