Відповіді:
>
- це не команда, а перенаправлення дескриптора файлу. Це означає, що оболонка аналізує це завдання, видаляє його з командного рядка та змінює середовище для нового процесу, в якому воно запускається. Новий процес не помічає цієї частини командного рядка. Ось чому ви можете помістити його скрізь: на початку, наприкінці чи між ними.
Шукайте REDIRECTION
блок в man bash
.
Для того, щоб додати до наявного файлу, вам потрібно скористатися >>
.
>
є оператором перенаправлення . Зауважте, що використання >
для переадресації до звичайного файлу замінить те, що вже є, якщо не встановлено noclobber . >>
буде додано до кінця файлу.
noclobber
було встановлено (bash).
noclobber
- це не просто башізм. Це частина POSIX
Як відповіли інші, >
це не команда, а скоріше оператор перенаправлення. Однак термін "оператор перенаправлення" не стосується конкретно операторів перенаправлення >
, а декількох можливих операторів перенаправлення. На dash
головній сторінці вказані такі оператори перенаправлення:
< > >| << >> <& >& <<- <>
Я не впевнений, що існує дійсне індивідуальне ім’я для кожного. Можливо, якщо ви перекопаєте старі інструкції з оболонки, ви знайдете щось цікаве. Це джерело , правильне чи неправильне, безумовно, має намір назвати деякі з них:
> - '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
встановлений, то>|
перезапис і дозволить дозволити файл.