собственно имеем
я вижу обьяснение немного по другому...
1) по текущей директории происходит поиск файлов (с маской)
2) cat изымает их содержимое
3) потоком отправляет их в tout (файл не обнуляется, направляя в него поток мы дописываем)
3б) содержимое tout отправляется в tout(!)
Тут может происходить следующее:
а) ошибка cat: tout: ввод и вывод в один файл, как произошло у меня (интепритатор bash; OS:Xubunta).
б) копирование, до тех пор, пока не забьется диск, как произошло у тебя...(какой у тебя интепритатор?)
попробуй выполнить cat t* > ftmin (или в другой файл !(*t) )) и увидишь, что никакой рекурсии поиск не вызывает.
ЗЫ вызавать файлы лучше (хороший тон) с указанием месторасположения, например cat t* > ./tout, особенно запускаемые файлы(например ./prog, а не prog[/b]), и особенно под рутом...
Уже решили что изначально что говорилось чушь.
Мой друг админ на FREEBSD даже проверил это:
Олег, lapp прав ... твой знакомый видать что-то не то сделал, все происходит именно так как написал lapp, зацикливание, вчера проверили.
compiler, правильный ответ скрыт в спойлере в моем первом посте
Сомневаюсь что он что-то сделал не так. Может разны версии по разному обрабатывают
OpenBSD ведет себя аналогично FreeBSD. Предполагаю, что поведение может отличаться для файлов различного размера (из-за буферизации). Для файлов размером 1 байт получается именно так, как сказал Олег.
Вопрос, как я понимаю, относился к оригинальной и чистой идеологии Unix. То, что получается в конкретных примерах сейчас - это не совсем то (кстати, я проверил на Linux RedHat 4 и Solaris 10). В них просто вставлена защита.
Но спрашивается: а зачем в cat вставлено специальное распознование (!) ситуации идентичности файлов ввода и вывода? Ответ, я думаю, такой: потому что это может привести именно к тому эффекту, который описан в ответе.. Этот пример просто демонстрирует возможность одновременного открытия файла на запись и чтение разными процессами (если только он не был кем-то заблокирован для исключительного использования). Например, вы качаете на диск видео. Вы можете не дожидаться конца перекачки, запустить вьюер и начать смотреть это видео. Дальше - кто мешает это изображение засовывать обратно в файл, приписывать сзади? Вот и получается то самое зацикливание. Я не говорю, что это исключительное свойство юникса, но понятие файлов и потоков было развито до совершенства именно в нем. MS DOS был простенькой системкой, когда появился (в то время Unix уже полностью оформился), и он был сделан юниксоподобным. Заслуга MS состоит именно в том, что они урезали систему настолько, чтоб она могла без проблем идти на первых персоналках. Потом, когда мощности выросли - Dos (в виде Windows) стали подтягивать к тому, от чего сначала уходили. Так что ничего такого исключительного в этом нету. И более того, реальный Unix уже не Unix.. ))
И еще: xds совершенно справедливо упомянул буферизацию, ее тут нужно учитывать.