Вот как я себе это представляю. Есть некий файл. Но он не обычный: при его чтении (обычном, fread, etc.) запускается программа, которая вместо содержимого файла выдаёт результат своей работы.
Примеры:
1) имеем «динамический» файл './current-date', пишем
$ cat ./current-date
2010/10/28
2) в файле .gitignore сидит программа, которая возвращает список определённых файлов (по регэкспам или иначе — не важно; алгоритм может быть сложный, glob и рядом не стоит). Но когда git читает .gitignore, он читает его как обычный файл, в котором есть список файлов.
3) ~/.signature — подпись, которая добавляется к письму. Mutt поддерживает, если этот файл будет программой, но это реализовано только внутри Mutt и Mutt работает с .signature-файлом и с .signature-программой по-разному (разные даже способы задания опции в .muttrc). Но если бы .signature был «динамическим» файлом, то в него можно засунуть какую-нибудь программу (напр. вызов fortune). И *любая* программа, которая будет читать .signature (напр. cat) выведет результат работы fortune.
И т.д. У меня уже подобная мысль несколько раз возникала по разным случаям. Сегодня возникла ещё раз, решил написать.
Можно, конечно и просто запскать команды и скрипты, но плюс вышеизложенного в том, что внешние программы читают файл по обычному,а не запускают программу.