Перенаправление - это переключение стандартного потока данных таким образом, чтобы оно поступало из источника, отличного от источника по умолчанию, или для того, чтобы оно направлялось в какой-либо пункт назначения, отличный от пункта назначения по умолчанию.

Каждый процесс автоматически инициализируется тремя потоками данных: одним входным потоком, называемым стандартным входом, и двумя выходными потоками, называемыми стандартным выходом и стандартной ошибкой. Все они состоят из простого текста и считаются текстовым файлом особого типа, и все они связаны с консолью по умолчанию.

Стандартный ввод является источником ввода для команды; по умолчанию это текст, набранный на клавиатуре, но он может быть перенаправлен из другого источника, например из файла или другой программы. Стандартный вывод и стандартная ошибка - это назначение вывода и сообщения об ошибках от команд соответственно; по умолчанию они являются мониторами дисплея, но их можно перенаправить, чтобы перейти к какому-либо другому месту назначения, такому как файл, принтер или другая программа.

Использование стандартных потоков имеет то преимущество, что процессам не нужно знать, что происходит перенаправление и что это упрощает разработку программ. Это делает перенаправление простым делом, и, таким образом, оно является основным фактором гибкости и удобства Unix-подобных операционных систем.