重定向:额外的单词是如何进入文件的?

Den*_*son 5 bash redirection

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

echo "bob">other name
Run Code Online (Sandbox Code Playgroud)

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

bob name
Run Code Online (Sandbox Code Playgroud)

“名称”是如何出现在文件中的?我相信我在某处看到您可以在命令中的任何位置放置重定向。事实上,我刚刚测试了这个:

echo >other Some text in a file
Run Code Online (Sandbox Code Playgroud)

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

此功能的目的是什么?

当然,最初,我应该输入:

echo "bob">other\ name
Run Code Online (Sandbox Code Playgroud)

Joh*_*n T 13

这就是 bash 重定向的工作原理。

写这个:

echo "bob">other name
Run Code Online (Sandbox Code Playgroud)

相当于:

echo "bob" name >other
Run Code Online (Sandbox Code Playgroud)

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

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

>file.txt echo "one" "two" "three"
Run Code Online (Sandbox Code Playgroud)

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