Linux Shell Basics:lsofを使用せずに即座にファイル記述子の状態(リダイレクト)を確認するには?

Linux Shell Basics:lsofを使用せずに即座にファイル記述子の状態(リダイレクト)を確認するには?

私は学んでいますファイル記述子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に置き換えます。

おすすめ記事