日期:2014-05-16  浏览次数:20723 次

一天一条linux命令——find

find命令的主要功能是在系统中查找文件或目录。

?

find命令的一般形式为:find pathname -options [-print -exec -ok]

print为对匹配文件输出到标准输出,默认为标准输出,故可不写

exec为对匹配文件执行该参数给出的shell命令,形式为'command' {} \;

ok与exec类似,更安全,每步需要用户确认。

?

1.-name 根据文件名匹配。例如:

find ~ -name "test.txt" 在home路径及子目录下查找test.txt文件。

find . -name "[a-z][A-Z][0-9][0-9]*" 在当前路径及子目录下查找,一个小写字母加一个大写字母加两个数字开头的文件。

find / -name "*.txt" 查找所有txt文件。

?

2.-perm(permission)根据权限匹配。例如:

find . -perm 777 查找当前及子目录下所有权限为777的文件。(777意义详见chmod)

find . -perm -777 查找权限大于等于777的文件。+为小于等于。

?

3.-user 根据用户匹配。例如:

find . -user abc 查找abc属主的文件。

?

4.-nouser 查找属主账户已经被删除的文件。例如:

find . -nouser

?

5.-group,-nogroup 与user,nouser类似。

?

6.-mtime 根据更改时间匹配。例如:

find . -mtime -3 3天以内的

find . -mtime +4 4天以前的

?

7.-newer 根据更改时间匹配。例如:

find . -newer abc 更改时间比abc文件新的文件。

find . -newer abc ! -newer 123 -exec ls -l {} \; 更改时间比abc新但比123旧的文件,列出其详细信息。!为逻辑非。

?

8.-type 根据文件类型匹配。文件类型(

b:块设备文件

d:目录

c:字符设备文件

p:管道文件

l:符号链接文件

f:普通文件)例如:

find . -type f 查找普通文件。

?

9.-size 根据文件长度匹配。例如:

find . -size +1000000c 文件大于1M字节的文件。注意数字后面的c,c代表用字节计量。

find . -size 10 文件等于512块的文件。数字后没有c时,表示用块(1块=512字节)计量。

?

10.还可与xargs命令一同使用(后续介绍)。