Syntax | visible in terminal StdOut | visible in terminal StdErr | visible in file StdOut | visible in file StdErr | existing file |
---|---|---|---|---|---|
> | no | yes | yes | no | overwrite |
>> | no | yes | yes | no | append |
2> | yes | no | no | yes | overwrite |
2>> | yes | no | no | yes | append |
&> | no | no | yes | yes | overwrite |
&>> | no | no | yes | yes | append |
tee | yes | yes | yes | no | overwrite |
tee -a | yes | yes | yes | no | append |
n.e. (*) | yes | yes | no | yes | overwrite |
n.e. (*) | yes | yes | no | yes | append |
& tee | yes | yes | yes | yes | overwrite |
& tee -a | yes | yes | yes | yes | append |
command > output.txt
Стандартный поток вывода будет перенаправлен только в файл, он не будет виден в терминале. Если файл уже существует, он перезаписывается.
command >> output.txt
Стандартный поток вывода будет перенаправлен только в файл, он не будет виден в терминале. Если файл уже существует, новые данные будут добавлены в конец файла.
command 2> output.txt
Стандартный поток ошибок будет перенаправлен только в файл, он не будет виден в терминале. Если файл уже существует, он перезаписывается.
command 2>> output.txt
Стандартный поток ошибок будет перенаправлен только в файл, он не будет виден в терминале. Если файл уже существует, новые данные будут добавлены в конец файла.
command &> output.txt
И стандартный вывод, и стандартный поток ошибок будут перенаправлены только в файл, в терминале ничего не будет видно. Если файл уже существует, он перезаписывается.
command &>> output.txt
Both the standard output and standard error stream will be redirected to the file only, nothing will be visible in the terminal. If the file already exists, the new data will get appended to the end of the file..
command | tee output.txt
Стандартный поток вывода будет скопирован в файл, он все равно будет виден в терминале. Если файл уже существует, он перезаписывается.
command | tee -a output.txt
Стандартный поток вывода будет скопирован в файл, он все равно будет виден в терминале. Если файл уже существует, новые данные будут добавлены в конец файла.
(*)
Bash не имеет сокращенного синтаксиса, который позволяет передавать только StdErr для второй команды, которая понадобится здесь в сочетании с tee еще раз для завершения таблицы. Если вам действительно нужно что-то подобное, пожалуйста, посмотрите на "Как транслировать stderr, а не stdout?" Переполнение стека для некоторых способов, как это можно сделать, например, путем обмена потоками или использования процесса замены.
command |& tee output.txt
Как стандартный вывод, так и стандартные потоки ошибок будут скопированы в файл, пока они будут видны в терминале. Если файл уже существует, он перезаписывается.
command |& tee -a output.txt
Как стандартный вывод, так и стандартные потоки ошибок будут скопированы в файл, пока они будут видны в терминале. Если файл уже существует, новые данные будут добавлены в конец файла.