您的位置:首页 > 运维架构 > Linux

find命令详解 linux学习笔记十二之find命令详解

2013-06-17 20:49 821 查看
语法: find 【path...】 expression

1、按文件名称查找

例如查找/home 路径下文件名称中带有abc的文件

[root@bogon home]# find /home -name *abc*

/home/1abc2

[root@bogon home]#

2、按时间查找

例如查找5天前创建或修改过的文件

[root@bogon ~]# find /home -mtime +5

/home/ljk/.bashrc

/home/ljk/.bash_profile

/home/ljk/.bash_logout

/home/ljk/.mozilla

/home/ljk/.mozilla/extensions

/home/ljk/.mozilla/plugins

查找5天内的产生或修改过的文件

[root@bogon ~]# find /home -mtime -5

/home

/home/ljk

/home/ljk/.bash_history

/home/ljk/hellworld.sh

/home/ljk/shell

/home/ljk/test

/home/1abc2

如果是查找5天前并且名字中带abc的文件再删除可以执行为:find /home -mtime +5 -name *abc* -exec rm {} \;(这里用到了exec命令,可能是表示为将find的结果输入给exec然后执行后面的命令,个人感觉跟管道“|”类似)

3、按文件类型查找

例如查找类型为 d(文件夹)的文件夹

[root@bogon ~]# find /home -type d

/home

/home/ljk

/home/ljk/shell

/home/ljk/.mozilla

/home/ljk/.mozilla/extensions

/home/ljk/.mozilla/plugins

/home/ljk/test

查找类型为l(引用类型的文件)

[root@bogon ljk]# find ./ -type l -exec ls -l {} \;

lrwxrwxrwx 1 root root 12 Jun 17 20:24 ./lnhello -> hellworld.sh

4、按大小查找

find ./ -size +1000c 查找当前目录大小大于1000字节的文件

root@bogon ljk]# find ./ -size +10c

./

./.bash_history

./shell

./.bashrc

./lnhello

find ./ -size -1000c 查找当前目录小于1000字节的文件

[root@bogon ljk]# find ./ -size -10c

./hellworld.sh

上面的命令中将+(-)去掉则表示大小等于xxx大小的文件

5、按组或用户查找

例如查找home下属于ljk用户的文件

[root@bogon ljk]# find /home -user ljk

/home/ljk

/home/ljk/.bash_history

/home/ljk/hellworld.sh

/home/ljk/shell

/home/ljk/.bashrc

/home/ljk/.bash_profile

/home/ljk/.bash_logout

/home/ljk/.mozilla

/home/ljk/.mozilla/extensions

/home/ljk/.mozilla/plugins

/home/ljk/test

查找home路径下组属于ljk组的文件

[root@bogon ljk]# find /home -group ljk

/home/ljk

/home/ljk/.bash_history

/home/ljk/hellworld.sh

/home/ljk/shell

/home/ljk/.bashrc

/home/ljk/.bash_profile

/home/ljk/.bash_logout

/home/ljk/.mozilla

/home/ljk/.mozilla/extensions

/home/ljk/.mozilla/plugins

/home/ljk/test

查找没有用户的文件为:find /home -nouser

查找没有组的文件为: find /home -nogroup

6、按路径查找

查找当前目录下除了shell目录中所有的文件

[root@bogon ljk]# find ./ -path "./shell" -prune -o -type f

./.bash_history

./hellworld.sh

./shell

./.bashrc

./.bash_profile

./.bash_logout

find的功能很强大,如上面所有的命令都可以组合来查询,find还可以按其它的条件来查询,

tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N

-cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME

-ilname PATTERN -iname PATTERN -inum N -iwholename PATTERN -iregex PATTERN

-links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE

-nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN

-wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N

-used N -user NAME -xtype [bcdpfls]

-context CONTEXT

在linux环境下敲find --help ,或man find 来查看find的用法,用法和上面所写的类似,这里不一一赘述。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: