GNU/Linux >> Linux の 問題 >  >> Linux

現在の bash セッションで開いているファイル記述子 (およびそれらが参照するファイル) を一覧表示する方法

はい、これにより、開いているすべてのファイル記述子が一覧表示されます:

$ 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

もちろん、いつものように:0 は stdin、1 は stdout、2 は stderr です。
この場合、4 番目は開いているファイル (書き込むため) です。


任意の端末に接続されているファイル記述子をリストしたい場合、 lsof を使用できます /fuser または似たようなもの:

$ 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

これらのツールは基本的に /proc を解析します 、だから /proc/$$/fd/ にアクセスするだけです 例:

ls /proc/$$/fd/*

lsof -a -p $$

ネットワーク fd のみ:

lsof -i -a -p $$

Linux
  1. 各ファイルとディレクトリのサイズを一覧表示し、Bash で降順で並べ替える方法は?

  2. bashでファイルの絶対ディレクトリを取得するにはどうすればよいですか?

  3. コマンドラインでファイルリストを含むファイルを暗号化するためにrarを使用するにはどうすればよいですか?

  1. Linuxで.gzファイルと.tar.gzファイルを抽出する方法

  2. <() の bash (および =() の zsh) とは正確には何ですか?

  3. Fedora 23 で .rar ファイルを開く方法

  1. バッシュ‘?

  2. コマンド`tty`の出力とファイル`/dev / tty`はどちらも、現在のBashプロセスの制御端末を参照していますか?

  3. 別のディレクトリにファイルを一覧表示するためにBashオートコンプリートをカスタマイズする方法は?