为什么可以find . | cat
打印所有文件名,但find . | file -i
无法显示所有文件的 mime 类型?
由于有来自的输出find .
和来自的输入,它不应该工作吗file -i
?
(抱歉,如果这是一个愚蠢的问题,我是使用 bash 的初学者,我找不到其他可以向我解释这个问题的问题)
答案1
使用管道,右侧的命令会读取其标准输入通道上的数据。该file
命令要求文件是命令行参数,而不是标准输入上的数据。
该命令的用途正是如此xargs
:从标准输入读取,并将数据作为命令行参数提供:
find . | xargs file -i
或者,使用该-f
选项file
:
find . | file -i -f -
阅读手册页以了解更多详细信息。