Ответы:
>
это не команда, а перенаправление дескриптора файла. Это означает, что оболочка анализирует это назначение, удаляет его из командной строки и изменяет среду для нового процесса, в котором оно запущено. Новый процесс не замечает эту часть командной строки. Вот почему вы можете поместить это везде: в начале, в конце или между ними.
Ищите REDIRECTION
блок в man bash
.
Для добавления к существующему файлу вам необходимо использовать >>
.
>
является оператором перенаправления . Обратите внимание, что использование >
перенаправления на обычный файл перезапишет то, что уже есть, если не установлен noclobber . >>
добавит в конец файла.
noclobber
был установлен (bash).
noclobber
- это не просто башизм. Это часть POSIX
Как ответили другие люди, >
это не команда, а скорее оператор перенаправления. Тем не менее, термин «оператор перенаправления» конкретно не относится к >
, но ряд различных возможных операторов перенаправления. На dash
странице man перечислены следующие операторы перенаправления:
< > >| << >> <& >& <<- <>
Я не уверен, что есть правильное индивидуальное имя для каждого. Возможно, если вы покопаетесь в старых руководствах по оболочке, вы найдете что-то интересное. Этот источник , правильный или неправильный, определенно имеет право назвать некоторые из них:
> - '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"
<<-
удаляет лидирующие символы табуляции и пробелы?
>
перенаправляет вывод в файл (или устройство), перезаписывая все, что там уже существует
>>
перенаправляет вывод в файл (или устройство), добавляя к чему-либо уже существующему
<
направляет данные из файла (или устройства) в программу или устройство
<<
здесь документ
<<
это документ здесь
noclobber
установлена, то>|
переопределит и разрешит клоберинг файла.