系统相关
首页 > 系统相关> > Linux Shell基础知识:如何在没有lsof的情况下立即检查文件描述符状态(重定向到哪里)?

Linux Shell基础知识:如何在没有lsof的情况下立即检查文件描述符状态(重定向到哪里)?

作者:互联网

我正在学习Linux的文件描述符,我想知道是否有任何命令显示一个完整的列表,让我知道在这一刻每个重定向到哪里.
也许有些信息如:

0  -->  <stdin
1  -->  >stdout
2  -->  >stderr
3  -->  >MyFileForWriting
4  -->  <MyFileForReading

我找到了需要lsof的this thread,但如果它存在,那么使用另一种不依赖于该命令的方法会很有用.
我需要关于Linux的这些信息(我也会尝试使用CygWin,直到现在还不包括’lsof’工具,但其行为大致类似于POSIX兼容的操作系统).

解决方法:

/ 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

如果您对其他一些过程感兴趣,只需用相应的PID替换“self”即可.

标签:linux,shell,cygwin,io-redirection
来源: https://codeday.me/bug/20190813/1646288.html