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