Перенаправление ввода-вывода консольных приложений

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

В командной строке Windows перенаправление ввода-вывода возможно только в файлы:

dir > 1.txt
findstr 2011 <1.txt

В Линуксе аналогичные операции выглядят так:

ls -l > 1.txt
grep 2011 < 1.txt

В обоих случаях выведены на консоль списки файлов в текущей директории, из которых выбраны и распечатываются только те строки, в которых встречается «2011». После этого на диске остается файл 1.txt, предназначение которого, по логике команд, было послужить временным файлом, и его теперь следует удалить. В системе Windows:

del 1.txt

или в системе Linux:

rm 1.txt

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

ls -l | grep 2011

Наличие возможности строить pipe между процессами позволяет пользователям писать очень сложные скрипты командной строки, осуществляющие нетривиальные операции.