为什么这个使用管道的命令不起作用?

为什么这个使用管道的命令不起作用?

为什么可以find . | cat打印所有文件名,但find . | file -i无法显示所有文件的 mime 类型?

由于有来自的输出find .和来自的输入,它不应该工作吗file -i

(抱歉,如果这是一个愚蠢的问题,我是使用 bash 的初学者,我找不到其他可以向我解释这个问题的问题)

答案1

使用管道,右侧的命令会读取其标准输入通道上的数据。该file命令要求文件是命令行参数,而不是标准输入上的数据。

该命令的用途正是如此xargs:从标准输入读取,并将数据作为命令行参数提供:

find . | xargs file -i

或者,使用该-f选项file

find . | file -i -f -

阅读手册页以了解更多详细信息。

相关内容