You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不存文件用Linux file命令判断程序STDOUT的文件类型

解决方法

不用临时文件的话,有两种简单直接的方式可以实现需求:

方法一:利用file的标准输入参数

file命令本身支持从标准输入读取内容,只需要传入-作为参数即可,执行命令如下:

myprogram | file -

这条命令会让file直接分析myprogram输出到管道的内容,直接返回对应的文件类型,全程不会生成磁盘文件。

方法二:使用bash进程替换

bash的进程替换功能可以把命令的输出包装成一个可读取的“虚拟文件”,直接供file调用,命令格式为:

file <(myprogram)

这里的<(myprogram)会让bash创建一个指向myprogram输出管道的特殊文件(比如/dev/fd/63),file读取这个文件就等价于读取myprogram的输出,同样不会生成实际磁盘文件。

为什么你之前的命令失败?

你尝试的myprogram | file <(cat /dev/stdin)逻辑有误:管道将myprogram的输出传给file的标准输入,但<(cat /dev/stdin)里的cat,它的标准输入是当前终端的stdin,而非myprogram的输出,两者输入源不关联,才会出现链接失效的错误。

内容的提问来源于stack exchange,提问作者puterboy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 01:30:58