<Предыдущая | Содержание: | Следующая>
Перенаправление стандартного вывода и стандартной ошибки в один файл
Бывают случаи, когда мы можем захотеть записать весь вывод команды в один файл. Для этого мы должны перенаправить как стандартный вывод, так и стандартную ошибку одновременно. Есть два способа сделать это. Во-первых, традиционный способ, работающий со старыми версиями оболочки:
[я @ linuxbox ~] $ ls -l / bin / usr> ls-output.txt 2> & 1
[я @ linuxbox ~] $ ls -l / bin / usr> ls-output.txt 2> & 1
Используя этот метод, мы выполняем два перенаправления. Сначала перенаправляем стандартный вывод в файл ls-output.txt а затем мы перенаправляем дескриптор файла 2 (стандартная ошибка) в дескриптор файла один (стандартный вывод), используя обозначение 2> & 1.
Обратите внимание, что порядок перенаправлений важен. Перенаправление стандартной ошибки всегда должно происходить. после перенаправление стандартного вывода или он не работает. В приведенном выше примере
> ls-output.txt 2> & 1
перенаправляет стандартную ошибку в файл ls-output.txt, но если изменить порядок на
2> & 1> ls-output.txt
стандартная ошибка направлена на экран.
Последние версии колотить предоставить второй, более рациональный метод выполнения этого
Перенаправление стандартной ошибки
комбинированное перенаправление:
[я @ linuxbox ~] $ ls -l / bin / usr &> ls-output.txt
[я @ linuxbox ~] $ ls -l / bin / usr &> ls-output.txt
В этом примере мы используем единственное обозначение &> для перенаправления стандартного вывода и стандартной ошибки в файл ls-output.txt. Вы также можете добавить стандартный поток вывода и стандартные потоки ошибок в один файл следующим образом:
[я @ linuxbox ~] $ ls -l / bin / usr & >> ls-output.txt
[я @ linuxbox ~] $ ls -l / bin / usr & >> ls-output.txt