Chinaunix首页 | 论坛 | 博客
  • 博客访问: 110829
  • 博文数量: 40
  • 博客积分: 1650
  • 博客等级: 上尉
  • 技术积分: 420
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-20 13:05
文章分类
文章存档

2011年(1)

2009年(1)

2008年(1)

2007年(37)

我的朋友

分类: LINUX

2007-07-21 13:05:36

find基础:

 

1.文件名基本查询   

    find / -name 文件名
2.
无错误输出查找

    find / -name 文件名 2 >/dev/null
3.
按文件大小查找

    find / -size 1500c
(查找1,500字节大小的文件,c表示字节)
    find / -size +1500c
(查找大于1,500字节大小的文件,+表示大于)    
    find / -size
1500c (查找小于1,500字节大小的文件,-表示小于)
    
4.
按修改时间

    find / -amin n
最后n分钟
    find / -atime n
最后n
    find / -cmin n
最后n分钟改变状态
    find / -ctime n
最后n天改变状态
5.
其它类型查询
    find / -empty
空白文件、空白文件夹、没有子目录的文件夹
    find / -false
查找系统中总是错误的文件
    find / -fstype type
找存在于指定文件系统的文件,如typeext2
    find / -gid n
idn的文件

    find / -group gname
组名为gname的文件
    find / -depth n
在某层指定目录中优先查找文件内容
    find / -maxdepth levels
在某个层次目录中按递减方式查找

 

find语法

 find [目录...][-amin <分钟>][-anewer <参考文件或目录>][-atime <24小时数>]

[-cmin <分钟>][-cnewer <参考文件或目录>][-ctime <24小时数>][-daystart][-depyh]

[-empty][-exec <执行指令>][-false][-fls <列表文件>][-follow][-fprint <列表文件>]

[-fprint0 <列表文件>][-fprintf <列表文件><输出格式>][-fstype <文件系统类型>]

[-gid <群组识别码>][-group <群组名称>][-help][-ilname <范本样式>][-iname <范本样式>]

[-inum ][-ipath <范本样式>][-iregex <范本样式>][-links <连接数目>][-lname <范本样式>]

[-ls][-axdepth <目录层级>][-mindepth <目录层级>][-mmin <分钟>][-mount]

[-mtime <24小时数>][-name <范本样式>][-newer <参考文件或目录>][-nogroup]

[noleaf] [-nouser][-ok <执行指令>][-path <范本样式>][-perm <权限数值>][-print]

[-print0]

[-printf <输出格式>][-prune][-regex <范本样式>][-size <文件大小>][-true]

[-type <文件类型>][-uid <用户识别码>][-used <日数>][-user <拥有者名称>][-version]

[-xdev][-xtype <文件类型>]

 

find指令用于查找符合条件的文件。任何位于参数之前的字符串都将被视为欲查找的目录。

 

参数:

 -amin<分钟>  查找在指定时间曾被存取过的文件或目录,单位以分钟计算。

 -anewer<参考文件或目录>  查找其存取时间较指定文件或目录的存取时间更 接近现在的文件或目录。

 -atime<24小时数>  查找在指定时间曾被存取过的文件或目录,单位以24小时计算。

 -cmin<分钟>  查找在指定时间之时被更改的文件或目录。

 -cnewer<参考文件或目录>  查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。

 -ctime<24小时数>  查找在指定时间之时被更改的文件或目录,单位以24小时计算。

 -daystart  从本日开始计算时间。

 -depth  从指定目录下最深层的子目录开始查找。

 -expty  寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录。

 -exec<执行指令>  假设find指令的回传值为True,就执行该指令。

 -false  将find指令的回传值皆设为False

 -fls<列表文件>  此参数的效果和指定"-ls"参数类似,但会把结果保存为指定的列表文件。

 -follow  排除符号连接。

 -fprint<列表文件>  此参数的效果和指定"-print"参数类似,但会把结果保存成指定的列表文件。

 -fprint0<列表文件>  此参数的效果和指定"-print0"参数类似,但会把结果保存成指定的列表文件。

 -fprintf<列表文件><输出格式>  此参数的效果和指定"-printf"参数类似,但会把结果保存成指定的列表文件。

 -fstype<文件系统类型>  只寻找该文件系统类型下的文件或目录。

 -gid<群组识别码>  查找符合指定之群组识别码的文件或目录。

 -group<群组名称>  查找符合指定之群组名称的文件或目录。

 -help--help  在线帮助。

 -ilname<范本样式>  此参数的效果和指定"-lname"参数类似,但忽略字符大小写的差别。

 -iname<范本样式>  此参数的效果和指定"-name"参数类似,但忽略字符大小写的差别。

 -inum  查找符合指定的inode编号的文件或目录。

 -ipath<范本样式>  此参数的效果和指定"-ipath"参数类似,但忽略字符大小写的差别。

 -iregex<范本样式>  此参数的效果和指定"-regexe"参数类似,但忽略字符大小写的差别。

 -links<连接数目>  查找符合指定的硬连接数目的文件或目录。

 -iname<范本样式>  指定字符串作为寻找符号连接的范本样式。

 -ls  假设find指令的回传值为True,就将文件或目录名称列出到标准输出。

 -maxdepth<目录层级>  设置最大目录层级。

 -mindepth<目录层级>  设置最小目录层级。

 -mmin<分钟>  查找在指定时间曾被更改过的文件或目录,单位以分钟计算。

 -mount  此参数的效果和指定"-xdev"相同。

 -mtime<24小时数>  查找在指定时间曾被更改过的文件或目录,单位以24小时计算。

 -name<范本样式>  指定字符串作为寻找文件或目录的范本样式。

 -newer<参考文件或目录>  查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。

 -nogroup  找出不属于本地主机群组识别码的文件或目录。

 -noleaf  不去考虑目录至少需拥有两个硬连接存在。

 -nouser  找出不属于本地主机用户识别码的文件或目录。

 -ok<执行指令>  此参数的效果和指定"-exec"参数类似,但在执行指令之前会先询问用户,若回答"y""Y",则放弃执行指令。

 -path<范本样式>  指定字符串作为寻找目录的范本样式。

 -perm<权限数值>  查找符合指定的权限数值的文件或目录。

 -print  假设find指令的回传值为True,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称之前皆有"./"字符串。

 -print0  假设find指令的回传值为True,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行。

 -printf<输出格式>  假设find指令的回传值为True,就将文件或目录名称列出到标准输出。格式可以自行指定。

 -prune  不寻找字符串作为寻找文件或目录的范本样式。

 -regex<范本样式>  指定字符串作为寻找文件或目录的范本样式。

 -size<文件大小>  查找符合指定的文件大小的文件。

 -true  将find指令的回传值皆设为True

 -typ<文件类型>  只寻找符合指定的文件类型的文件。

 -uid<用户识别码>  查找符合指定的用户识别码的文件或目录。

 -used<日数>  查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算。

 -user<拥有者名称>  查找符合指定的拥有者名称的文件或目录。

 -version--version  显示版本信息。

 -xdev  将范围局限在先行的文件系统中。

 -xtype<文件类型>  此参数的效果和指定"-type"参数类似,差别在于它针对符号连接检查。

 

Find实例:

 

1、查找/home/user1/html目录下的所有文件:

find /home/user1/html -print
2
、查看/app目录下类型为文件,访问权限为640文件;

find /app -type f -perm 640 -exec ls -l { } \;

3、清除当前目录及其子目录中文件类型为a.out *.o core 的文件

find . \( -name a.out -o -name '*.o' -o -name 'core' \) -exec rm {} \;

4、查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;

find / -type f -size 0 -exec ls -l { } \;

5、删除系统中所有扩展名为txt的文件,在删除之前询问是否清除它们;

find / -name *.txt -ok rm {} \;

6、删除/var/log目录中更改时间在7日之前的普通文件,并在删除之前询问是否清除它们;

find /var/log -type f -mtime +7 -ok rm { } \;

7、查找当前目录中所有属于root组的文件,并列出它们的完整路径;

find . -group root -exec ls -l { } \;
8
、删除当目录中访问时间在7日以来、含有三位数字后缀的log文件。

find . -name "log[0-2][0-9][0-9] [0-9]" -atime -7 –ok rm { } \;
9
、查找当前目录中的所有文件并排序;

find . -type f | sort

10、查找当前目录及其子目录中不属于root,bin student用户的文件,并且把错误定向到/dev/null

find / ! –user root ! –user bin ! –user student –exec ls –l {} \;2>/dev/null

阅读(658) | 评论(0) | 转发(0) |
0

上一篇:Linux命令(1)

下一篇:jdk+tomcat+apache安装

给主人留下些什么吧!~~