Разница между stdout и /dev/stdout

Рассмотрим пример:

root@debian:~$ echo "Hello, World" > stdout
root@debian:~$ cat stdout
Hello, World

root@debian:~$ echo "Hello, World" > /dev/stdout
Hello, World

В первом случае stdout это обычный файл, созданный в том же каталоге, в котором выполняется команду. Он ничем не отличающийся от любого другого обычного файла, например, ~/anyfile.txt. Он не имеет ничего общего со стандартным выводом, кроме того факта, что в данном примере на него перенаправляется стандартный вывод.

Во втором случае /dev/stdout это файл устройства, который является символической ссылкой (которую можно создать с помощью ln -s) на специальный виртуальный файл /proc/self/fd/1, представляющий файловый дескриптор 1 хранящийся в текущем процессе.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *