![为什么管道不适用于文件命令?](https://linux22.com/image/78515/%E4%B8%BA%E4%BB%80%E4%B9%88%E7%AE%A1%E9%81%93%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E%E6%96%87%E4%BB%B6%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
我发现which cp|file
打印为file
命令,有人可以解释为什么吗?
我当然知道该命令file $(which cp)
有效。
答案1
该file
命令不接受来自 的输入stdin
。你需要做类似的事情which cp | xargs file
答案2
首先,file
期望能够stat()
识别目标块设备、命名的 FIFO、符号链接等。
如果目标是常规文件(或者如果-s
使用),则它期望能够seek()
在魔术文件中指定的偏移量处执行测试。
对于普通流来说,这些都是不可能的stdin
。