Ответы:
>это не команда, а перенаправление дескриптора файла. Это означает, что оболочка анализирует это назначение, удаляет его из командной строки и изменяет среду для нового процесса, в котором оно запущено. Новый процесс не замечает эту часть командной строки. Вот почему вы можете поместить это везде: в начале, в конце или между ними.
Ищите 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установлена, то>|переопределит и разрешит клоберинг файла.