В ОС Linux все файлы имеют одинаковую структуру -- последовательность байтов. Любой файл можно свободно копировать или добавлять к другому файлу, так как все файлы организованы одинаково. Эта организация данных распространяется и на операции ввода и вывода. Данные в операциях ввода и вывода организованы аналогично файлам и все внешние устройства тоже считаются файлами.
Данные, вводимые с клавиатуры, так же, как и данные, выводимые командой или программой, представляют из себя поток байтов. Входной поток данных для программы в ОС Linux называется ее стандартным входом, а выходной поток данных -- стандартным выводом.
В ОС Linux широко используется переадресация, которая позволяет, например, перенаправить стандартный вывод так, чтобы информация не отображалась на экране, а записывалась в файл. Для переадресации вывода используется знак >
(больше), после которого указывается имя файла, в который направляется вывод, например,
ls >list_dir
Операция переадресации вывода всегда создает новый файл или перезаписывает существующий. Если же требуется дописать вывод к имеющейся в файле информации, то используется оператор >>
. В этом случае данные добавляются в конец файла.
Можно переадресовать и стандартный вход, чтобы входная информация читалась из файла, а не с клавиатуры. Оператор переадресации стандартного входа имеет вид знака <
(меньше). Операции переадресации стандартного входа и стандартного выхода можно объединять.