Linux For 样式命令

Linux For 样式命令

在 Windows DOS 中,我可以使用for命令来大幅提高工作效率,并同时执行无数操作。在 PowerShell 中,它甚至更好。在 Linux 上,我很难做到。

我如何创建一批指向另一个驱动器上的某些文件夹的软链接?

如果这样做,ln -s 2013-02-*它会做一些非常疯狂的事情并在随机文件夹中创建链接。

因此,我尝试使用命令替换,但echo首先进行测试,问题是

echo 'prepend/'`ls /drive/ -1`

仅将 preprend/ 字符串添加到第一个条目的前面。这告诉我,尽管我曾经使用 remove 命令进行了命令替换,但它并没有像我想象的那样工作(为每个 ls 结果生成一个命令)。

我又需要 for 循环了。我该如何执行“foreach $row in (ls -1) do (something)”?

答案1

从您想要链接的文件夹开始,这将起作用:

ln -s sourcefolder/2013-02-* .

当然有一个非常合理的“for”命令:

for var in path/* ; do echo "prepend$var" ; done

编辑:使用一个程序向另一个程序提供参数列表的一般方法是反引号:``,因此您可以执行以下操作:

for x in `ls -1` ; do program $x ; done

但是,ls 有一些魔力,因此如果您将其用作另一个程序的输入,则不需要输入 -1;您只需获取带有 * 模式(“glob”)的文件列表。

相关内容