Если программа использует ввод либо вывод на какое-то устройство, то ей можно задать альтернативные устройства ввода и вывода (это называется также перенаправлением ввода/вывода). Сделать это можно следующим образом. Предположим, есть программа под названием foo, которая требует ввести с клавиатуры некоторый текст. Однако этот текст есть у вас в файле textfile, и вы хотите, чтобы программа foo обработала именно его. Потребуется ввести следующую команду:
foo < textfile
Практически так же реализуется перенаправление вывода. Если программа foo выводит на экран информацию, а вы хотите, чтобы программа направляла ее в файл (назовем его outfile), то следует выполнить такую операцию:
foo > outfile
Таким образом можно решить некоторые проблемы, например когда программа выводит на экран длинный текст, который не помещается в консоли, что нередко случается при вызове программы с параметром –help с целью получения справки по использованию (впрочем, есть лучший метод решения данной проблемы). При необходимости можно также направить вывод в файл /dev/null, чтобы приложение не выводило на экран вообще ничего.
Никогда не перенаправляйте вывод на файлы устройств – такие, как, например, /dev/hda, /dev/hdb и т. д. Этим вы повредите данные на носителе информации. Есть еще один способ перенаправления вывода:
foo >> outfile
В данном случае конечный файл не перезаписывается, а дополняется новыми данными.