有什么方法可以递归地使用 linux 命令文件吗?

any way to use linux command file recursively?

我使用这个非常有用的命令:

 file * 

获取 quality/identity 个列出的文件。

但我想从给定的文件夹中递归列出。
换句话说,做类似的事情:
(以下命令不存在)

 file * -r

有什么技巧吗?

您可以使用 find,使用 -exec 开关:

find ./ -type f -exec file {} \;

小说明:

{} : result of the "find" command, used as an input for the "file" command
\; : terminator of the "find ... -exec ..." command

另一种选择是使用 xargs(1):

find . | xargs file

示例输出:

./.config/xfe:                 directory
./.config/xfe/xfirc:           ASCII text
./.Xauthority:                 X11 Xauthority data
./line/serialLG1800.py:        Python script, ...

如果文件名包含空格或其他特殊字符,最好使用-print0 选项进行查找,同时还必须为xargs 添加-0 选项:

find . -print0 | xargs -0 file