我试图找到如何将一些文本传递到文件而不覆盖已经使用的内容>命令的内容,但我意识到我不知道它叫什么。正在寻找右箭头或者右 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
>
将输出重定向到文件(或设备),覆盖那里已经存在的任何内容
>>
将输出重定向到文件(或设备),附加到那里已经存在的任何内容
<
将数据从文件(或设备)定向到程序或设备
<<
此处的文档