為什麼find . | cat
有效(列印所有文件名)但是find . | file -i
不能顯示所有檔案 mime 類型?
它不應該工作,因為有一個輸出find .
和一個輸入file -i
它不應該工作嗎?
(抱歉,如果這是一個愚蠢的問題,我是一個使用 bash 的初學者,我找不到另一個可以向我解釋這一點的問題)
答案1
使用管道,右側的命令讀取其 stdin 通道上的資料。這file
命令要求檔案是命令列參數,而不是標準輸入上的資料。
這正是該xargs
命令的用途:從 stdin 讀取,並提供資料作為命令列參數:
find . | xargs file -i
或者,使用以下-f
選項file
:
find . | file -i -f -
請閱讀手冊頁以獲取更多詳細資訊。