If you are only interested in files of a certain type, use the -type argument, followed by one of the characters in Table 9-1. Note, though that some versions of find don't have all of these.
Character |
Meaning |
---|---|
c |
Block special file ("device file") |
c |
Character special file ("device file") |
d |
Directory |
f |
Plain file |
l |
Symbolic link |
p |
Named pipe file |
s |
Socket |
Unless you are a system administrator, the important types are directories, plain files, or symbolic links (i.e., types d, f, or l).
Using the -type operator, here is another way to list files recursively:
% find . -type f -print | xargs ls -l
It can be difficult to keep track of all the symbolic links in a directory. The next command will find all the symbolic links in your home directory and print the files to which your symbolic links point. $NF gives the last field of each line, which holds the name to which a symlink points. If your find doesn't have a -ls operator, pipe to xargs ls -l as previously.
% find $HOME -type l -ls | awk '{print $NF}'
-- BB
Copyright © 2003 O'Reilly & Associates. All rights reserved.