Linux proc / pid / fd для stdout - 11?

Выполнение скрипта с перенаправлением stdout в файл. Итак, / proc / $$ / fd / 1 должен указывать на этот файл (поскольку stdout fileno равен 1). Однако фактический fd файла - 11. Пожалуйста, объясните, почему.

Вот сессия:

$ cat hello.sh
#!/bin/sh -e
ls -l /proc/$$/fd >&2

$ ./hello.sh > /tmp/1
total 0
lrwx------ 1 nga users 64 May 28 22:05 0 -> /dev/pts/0
lrwx------ 1 nga users 64 May 28 22:05 1 -> /dev/pts/0
lr-x------ 1 nga users 64 May 28 22:05 10 -> /home/me/hello.sh
l-wx------ 1 nga users 64 May 28 22:05 11 -> /tmp/1
lrwx------ 1 nga users 64 May 28 22:05 2 -> /dev/pts/0
6
задан Mat 14 September 2013 в 12:17
поделиться