我是一个打击脚本的新蜜蜂。在学习高级bash脚本时,我遇到了这个命令。我不明白命令是如何工作的以及花括号的用途是什么。提前谢谢。
答案 0 :(得分:3)
你的命令:
ls . | xargs -i -t cp ./{} $1
可分为以下几部分:
ls .
列出当前目录(这将列出所有文件/目录,但隐藏的目录)
| xargs -i -t cp ./{} $1
基本上,xargs打破了管道输出(在本例中为ls),并提供列表中的每个元素作为以下命令的输入(在本例中为cp)。 -t 选项是在stderr中显示xargs实际执行的内容。 -i 用于替换字符串。在这种情况下,由于没有提供任何内容,它将用输入替换 {} 。 $ 1是您的文件将被复制的目标的名称(我想在这种情况下,它应该是命令的目录,否则您将把所有文件复制到同一目的地)。
例如,如果你让我们说一个名为a,b,c的文件的目录。运行此命令时,它将执行以下操作:
cp ./a $1
cp ./b $1
cp ./c $1
注意:
不推荐使用 -i 选项,而应使用 -I (大写字母i)