Скажем, у меня есть программа, которая выводит в файл, который предоставляется (обязательным) аргументом:
./foo -o bar.txt
Есть ли способ обмануть его в выводе в канал?Это просто выводит в файл с именем -.
-
./foo -o - | less
Вы можете использовать /dev/stdout в качестве имени файла:
/dev/stdout
./foo -o /dev/stdout | less
другое решение, создайте именованный канал:
mkfifo /tmp/myfifo; ./foo -o /tmp/myfifo </tmp/myfifo cat -
Это будет передавать содержимое файла bar.txt в фильтр по мере роста файла:
tail -f bar.txt | filter