electrode
electrode

Reputation: 285

any way to use linux command file recursively?

I use this really useful command :

 file * 

to get quality/identity of listed files.

But I'd like to list recursively, from a given folder.
In another words, doing something like that :
(command below does not exist)

 file * -r

Any trick to do it ?

Upvotes: 0

Views: 64

Answers (2)

Dominique
Dominique

Reputation: 17533

You can use find for that, using the -exec switch:

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

Small explanation:

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

Upvotes: 3

Another option is to use xargs(1):

find . | xargs file

Sample output:

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

If file names contain spaces or other special characters, it is best to use the -print0 option for find and, doing so, also must add -0 option for xargs:

find . -print0 | xargs -0 file

Upvotes: 1

Related Questions