重定向:多余的单词是如何进入文件中的?

重定向:多余的单词是如何进入文件中的?

我正在测试一个脚本,想要创建一个包含一些文本的小文件,因此我输入了以下内容但忘记在文件名中转义空格:

echo "bob">other name

当我这样做时ls,它显示文件“其他”,当我这样做时cat other,它显示的内容如下:

bob name

“名称”是如何进入文件中的?我记得我曾在某个地方看到过,你可以在命令的任何地方放置重定向。事实上,我刚刚测试了这个:

echo >other Some text in a file

而“文件中的某些文本”是“其他”的内容。

这个功能的用途是什么?

当然,我本来应该输入:

echo "bob">other\ name

答案1

这就是 bash 重定向的工作方式。

写这个:

echo "bob">other name

相当于这样:

echo "bob" name >other

重定向可以出现在行中的任何位置,V 形符号 ( >) 仅适用于“其他”。

这允许人们灵活地组织他们的命令。如果这样做看起来更清楚,可以这样做:

>file.txt echo "one" "two" "three"

那么这取决于编写脚本或命令的人。

相关内容