">" 命令的正确名称是什么

">" 命令的正确名称是什么

我试图找到如何将一些文本传递到文件而不覆盖已经使用的内容>命令的内容,但我意识到我不知道它叫什么。正在寻找右箭头或者右 V 形或者多于命令没有显示任何内容。我一直只是这么称呼它传递给

答案1

>不是命令而是文件描述符重定向。这意味着 shell 会解析此分配,将其从命令行中删除,并更改启动它的新进程的环境。新进程不会注意到命令行的这一部分。这就是为什么你可以把它放在任何地方:开头、结尾或中间。

寻找REDIRECTION中的块man bash

为了附加到现有文件,您需要使用>>.

答案2

>是一个重定向运算符。请注意,使用>重定向到常规文件将覆盖已有的文件,除非诺克洛伯已设置。>>将附加到文件末尾。

答案3

正如其他人回答的那样,>这不是一个命令,而是一个重定向运算符。然而,术语“重定向运算符”并不特指>,而是指许多不同的可能的重定向运算符。手册dash页列出了以下重定向运算符:

 < > >| << >> <& >& <<- <>

我不确定每个人都有一个有效的个人姓名。如果您深入研究一些旧的 shell 手册,也许您会发现一些有趣的东西。这来源无论正确与否,我们肯定会尝试命名其中一些:

>  - 'output redirection operator'
<  - 'input redirection operator'
>> - 'output append operator'

但是也:

2> - 'standard error redirection operator'

但是我认为这并不正确,因为从2技术上讲这是一个参数而不是运算符的一部分。

快速参考(如果您不认识上述任何一个):

>   - redirect output stream to a file, eg >somefile (for stdout) or 2>somefile
>|  - as above but overwrite the file even if the noclobber shell option is set
>>  - append output stream to file
<   - redirect input stream from file, n defaults to 0 for stdin
<>  - open file for reading and writing on stdin
>&  - redirect output stream to another stream (eg >&1) or close with - (eg 2>&-)
<<  - here document - see http://en.wikipedia.org/wiki/Here_document
<<- - here document with leading tabs removed.

bash你也有:

<<< - here string, a one line here file. Eg <<<"foo bar"

答案4

> 将输出重定向到文件(或设备),覆盖那里已经存在的任何内容

>>将输出重定向到文件(或设备),附加到那里已经存在的任何内容

< 将数据从文件(或设备)定向到程序或设备

<<此处的文档

相关内容