小编Dre*_*wen的帖子

“命令 | 更少”与“更少 <(命令)”

查看大量命令输出的常见“习惯用法”是通过管道将其less通过command | less. 但是,也有可能(可能仅在bash,尚未在其他 shell 中测试过)使用该less <(command)语法,但less往往会抱怨/dev/fd/63 is not a regular file. 在探查之后/proc/*/fd,我看到在这两种情况下,它都是从管道中读取的。唯一的区别是在第一种情况下,它stdin被重定向。在第二种情况下,它/dev/fd/63作为文件名获取。less读取时是否以某种方式“忽略”常规文件检查stdin?另外,/dev/fd/63即使内容是文本,它如何确定这不是常规文件?

less bash pipe file-descriptors command-substitution

6
推荐指数
1
解决办法
979
查看次数