Множитель вывода
Иногда программный вывод нужно сохранить в файле, но при этом необходимо отслеживать выполнение программы на экране. В таком случае требуется удвоение ввода, причем одна копия отображается на экране, а вторая сохраняется в файле. Эту задачу выполняет команда 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.