私は学んでいますファイル記述子Linuxでは、表示するコマンドがあるかどうかを知りたいです。全リストこれを私に教えてください。それぞれはどこにリダイレクトされますか?今この瞬間まで。
おそらく次の情報があります。
0 --> <stdin
1 --> >stdout
2 --> >stderr
3 --> >MyFileForWriting
4 --> <MyFileForReading
私が見つけたこのスレッドこれは必須ですが、lsof
このコマンドがある場合は、このコマンドに依存しない他の方法を使用すると便利です。
Linuxに関する情報が必要です(これまで「lsof」ツールは含まれていませんが、ほとんどの場合、POSIX互換OSのように動作するCygWinも試してみます)。
ベストアンサー1
ファイル/proc
システムには、正確に次の情報がリストされます。
$ ls -l /proc/self/fd
total 0
lrwx------ 1 michas users 1 Apr 6 04:44 0 -> /dev/pts/0
lrwx------ 1 michas users 1 Apr 6 04:44 1 -> /dev/pts/0
lrwx------ 1 michas users 1 Apr 6 04:44 2 -> /dev/pts/0
lr-x------ 1 michas users 1 Apr 6 04:44 3 -> /proc/6934/fd
$ ls -l /proc/self/fd 2>/dev/null <<<foo |cat
total 0
lr-x------ 1 michas users 1 Apr 6 04:45 0 -> /tmp/sh-thd-361068043 (deleted)
l-wx------ 1 michas users 1 Apr 6 04:45 1 -> pipe:[136729]
l-wx------ 1 michas users 1 Apr 6 04:45 2 -> /dev/null
lr-x------ 1 michas users 1 Apr 6 04:45 3 -> /proc/6952/fd
他のプロセスに興味がある場合は、「self」をそのPIDに置き換えます。