Множитель вывода

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

user$ ls | tee content

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

user$ ls | tee content1 > content2

В итоге получаются два одинаковых файла: content1 и content2. Следующий пример более сложен, но более практичен:

user$ ls -l | tee content1 | sort +4 > content2

В content1 расположено обычное оглавление, которое автоматически отсортировано командой ls по имени. Копия этого вывода передается sort, а затем происходит сортировка по размеру файла (пятый столбец, то есть параметр +4) и сохранение информации в файле content2.