[ Содержание ]
Перенаправление стандартного вывода
Для перенаправления стандартного вывода программы при её запуске используется символ >. Например, если необходимо, что бы список файлов, выводимый программой ls, попадал не на экран, а в файл с именем list, следует выполнить такую команду:
$ ls > list $
Если файла list не было, он будет создан. Если файл list существовал, предыдущие данные будут потеряны и заменены на список файлов.
Для того чтобы добавить данные в конец файла используют два символа >>.
$ ls >> list $
Стандартный вывод перенаправляется только у той программы, у которой при запуске использовались символы перенаправления. На другие программы, запускаемые позже, это не распространяется.
Перенаправление стандартного вывода ошибки
Стандартный вывод ошибки — это файл с индексным дескриптором 2. Поэтому, для его перенаправления в файл используются те же самые символы, что и в случае перенаправления стандартного вывода, но с явным указанием номера дескриптора.
$ ls 2> file $ ls 2>> file
В стандартный вывод ошибки программы записывают ошибки, возникающие при их выполнении. Предположим, что при вызове программы cat ей в качестве параметра был указан не существующий файл. Тогда на экране появится соответствующее сообщение об ошибке.
$ cat nofile cat: nofile: No such file or directory $
Если Вы хотите, что бы при работе программы сообщения об ошибке не выводились на экран терминала, перенаправьте стандартный вывод ошибки в файл. Как вариант, вместо имени файла можно использовать специальное устройство /dev/null.
$ cat nofile 2> /dev/null $
Устройство /dev/null предназначено для потери информации, то есть любая информация, записываемая в этот файл, пропадает. Читать из этого файла не имеет смысла, т.к. сразу возвращается символ EOF.
Для того чтобы перенаправить стандартный вывод и вывод ошибки в один и тот же файл необходимо вывод ошибки перенаправить в файл с индексным дескриптором 1, а стандартный вывод в интересующий вас файл. Если необходимо сделать так, что бы программа не выводила на экран терминала никакой информации, сделайте так как показано в следующем примере.
$ cat file1 file2 2>&1 > /dev/null $
Перенаправление стандартного ввода
Для перенаправления стандартного ввода программы используют специальный символ <. Например:
$ cat < file
Программа cat выводит на экран содержимое файла file. Пример не очень удачный, этого можно добиться выполнив просто:
$ cat file
Но в первом примере программа не открывает файл file, это делает система и передаёт содержимое файла на стандартный ввод. Во втором примере, файл file открывает сама cat, явно используя функцию open.
[ Содержание ]