Я знаю, что tee
будет читать STDIN и создать новый файл. Но когда он приходит с ls
, какой процесс происходит первым?Путаница о ls, dir и tee
Например:
➤ ls
12 123 1234
➤ ls | tee hello
12
123
1234
hello # ls catch hello
➤ ls | tee 000
12
123
1234
hello # ls didn't get 000
➤ ls | tee 0
000
12
123
1234
hello # ls didn't get 0
➤ ls | tee 00000
0
000
00000 # ls did get 00000
12
123
1234
hello
➤
, но когда дело доходит до dir
:
➤ ls
12 123 1234
➤ dir | tee hello
12 123 1234 hello # get hello
➤ dir | tee 000
000 12 123 1234 hello
➤ dir | tee 0
0 000 12 123 1234 hello #get 0
➤ dir | tee 000000
0 000 12 123 1234 hello # didn't get 00000
➤ dir | tee 01
0 000 000000 01 12 123 1234 hello
➤ dir | tee 000000000000000000000000
0 000 000000 000000000000000000000000 01 12 123 1234 hello #get 00000000..000
➤
ПОЧЕМУ? Что происходит первым? tee
создать новый файл или ls
/dir
результат?
Итак, кто решил, что замок принадлежит? Это случайно? Потому что в этом случае иногда 'ls' получает файл, а иногда его нет ... – wrfly
@ Гмм все процессоры, о которых я знаю, являются детерминированными, поэтому ответ в ** нет, это не случайно **, но зависит на начальных условиях. То, что мы не можем знать результат чего-то, не означает случайности. В принципе, сравнивая 'dir' vs' ls', я бы сказал, что большее влияние имеет реализация, чем ваша так называемая * cpu-randomness *. – g24l