Ano, zobrazí se seznam všech otevřených deskriptorů souborů:
$ ls -la /proc/$$/fd
total 0
dr-x------ 2 isaac isaac 0 Dec 28 00:56 .
dr-xr-xr-x 9 isaac isaac 0 Dec 28 00:56 ..
lrwx------ 1 isaac isaac 64 Dec 28 00:56 0 -> /dev/pts/6
lrwx------ 1 isaac isaac 64 Dec 28 00:56 1 -> /dev/pts/6
lrwx------ 1 isaac isaac 64 Dec 28 00:56 2 -> /dev/pts/6
lrwx------ 1 isaac isaac 64 Dec 28 00:56 255 -> /dev/pts/6
l-wx------ 1 isaac isaac 64 Dec 28 00:56 4 -> /home/isaac/testfile.txt
Samozřejmě, jako obvykle:0 je stdin, 1 je stdout a 2 je stderr.
4. je v tomto případě otevřený soubor (k zápisu).
Za předpokladu, že chcete vypsat seznam deskriptorů souborů, které jsou připojeny k libovolnému terminálu, můžete použít lsof
/fuser
nebo podobně jako:
$ lsof -p $$ 2>/dev/null | awk '$NF ~ /\/pts\//'
bash 32406 foobar 0u CHR 136,31 0t0 34 /dev/pts/31
bash 32406 foobar 1u CHR 136,31 0t0 34 /dev/pts/31
bash 32406 foobar 2u CHR 136,31 0t0 34 /dev/pts/31
bash 32406 foobar 3u CHR 136,31 0t0 34 /dev/pts/31
bash 32406 foobar 255u CHR 136,31 0t0 34 /dev/pts/31
Tyto nástroje v podstatě analyzují /proc
, takže máte přístup k /proc/$$/fd/
také např.:
ls /proc/$$/fd/*
lsof -a -p $$
Pouze síťový fd:
lsof -i -a -p $$
bash:přesměrování stderr do souboru a stdout + stderr na obrazovku
Je /dev/nvram nebezpečné pro zápis?