为什么管道不适用于文件命令?

为什么管道不适用于文件命令?

我发现which cp|file打印为file命令,有人可以解释为什么吗?

我当然知道该命令file $(which cp)有效。

答案1

file命令不接受来自 的输入stdin。你需要做类似的事情which cp | xargs file

答案2

首先,file期望能够stat()识别目标块设备、命名的 FIFO、符号链接等。

如果目标是常规文件(或者如果-s使用),则它期望能够seek()在魔术文件中指定的偏移量处执行测试。

对于普通流来说,这些都是不可能的stdin

相关内容