find用法小结

来源:互联网 发布:macbook air适合编程吗 编辑:程序博客网 时间:2024/06/16 18:15

===============================
1. 通过文件的特征查找:
===============================

1) 按文件名
   find /    -name httpd.conf
   find /usr -name httpd.conf
   find /etc -name '*srm*'

2) 按大小
   find / -size 1500c      # 查找文件大小为1,500 bytes的文件,字符 c 表明这个要查找的文件的大小是以bytes为单位。
   find/ -size +10000000c  # "+”是表示要求系统只列出大于指定大小的文件,  "-”表示小于
   find / -empty           # 查找在系统中为空的文件或者文件夹

   -size:表示文件大小,+表示大于某个数,-表示小于某个数。c表示单位是字节,你可以将c换成k,M,G。

3) 按时间
   find / -amin -10        # 查找在系统中最后10分钟访问的文件
   find / -atime -2        # 查找在系统中最后48小时访问的文件

   find / -mmin -5         # 查找在系统中最后5分钟里修改过的文件
   find / -mtime -1        # 查找在系统中最后24小时里修改过的文件

   find / -cmin -5         # 查找在系统中最后5分钟里被改变状态的文件
   find / -ctime -1        # 查找在系统中最后24小时里被改变状态的文件
   
  访问过用amin,修改过用mmin,文件状态改变过用cmin
  精确到分钟的用amin,mmin,cmin,精确到天的用atime,mtime,ctime
  在5分钟之内的用-5,在5分钟以上的用+5

4) 按用户
   find / -user fred       # 查找在系统中属于FRED这个用户的文件
   find / -group cat       # 查找在系统中属于 groupcat的文件
   find / -nouser          # 查找在系统中属于作废用户的文件
  
5) 其他
   -false 查找系统中总是错误的文件
   -fstype type 查找系统中存在于指定文件系统的文件,例如:ext2 .
   -gid n 查找系统中文件数字组 ID 为 n的文件
   -group gname 查找系统中文件属于gnam文件组,并且指定组和ID的文件
  


===============================
2. 通过文件的特征查找:
===============================

Find命令也提供给用户一些特有的选项来控制查找操作。下表就是我们总结出的最基本,最常用的find命令的控制选项及其用法。

   选项               用途描述
-daystart     .   .测试系统从今天开始24小时以内的文件,用法类似-amin
-depth             使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容
-follow            遵循通配符链接方式查找; 另外,也可忽略通配符链接方式查询

-maxdepth levels   在某个层次的目录中按照递减方法查找
-mount             不在文件系统目录中查找, 用法类似 -xdev.
-noleaf            禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找

-help              显示命令摘要
-version           打印版本数字


使用-follow选项后,find命令则遵循通配符链接方式进行查uuuu找,除非你指定这个选项,否则一般情况下find命令将忽略通配符链接方式进行文件查找。

-maxdepth选项的作用就是限制find命令在目录中按照递减方式查找文件的时候搜索文件超过某个级别或者搜索过多的目录,这样导致查找速度变慢,查找花费的时间过多。例如,我们要在当前(.)目录技巧子目录中查找一个名叫fred的文件,我们可以使用如下命令
find . -maxdepth 2 -name fred

假如这个fred文件在./sub1/fred目录中,那么这个命令就会直接定位这个文件,查找很容易成功。假如,这个文件在./sub1/sub2 /fred目录中,那么这个命令就无法查找到。因为前面已经给find命令在目录中最大的查询目录级别为2,只能查找2层目录下的文件。这样做的目的就是为了让find命令更加精确的定位文件,如果你已经知道了某个文件大概所在的文件目录级数,那么加入-maxdepth n 就很快的能在指定目录中查找成功。


===============================
3. 使用混合查找方式:
===============================

find /tmp -size +10000000c -and -mtime +2       // -and
find /    -user fred       -or -user george     // -or   在/tmp目录中查找属于fred或者george这两个用户的文件
find /tmp ! -user panda                         // -or   在/tmp目录中查找所有不属于panda的文件
命令就可以解决了。很简单。






查找并显示文件的方法
查找到某个文件是我们的目的,我们更想知道查找到的文件的详细信息和属性,
find / -name "httpd.conf" -ls


下面的表格就是一些常用的查找文件并显示文件信息的参数和使用方法
选项      用途描述
-exec command;   查找并执行命令
-fprint file   打印文件完整文件名
-fprint0 file   打印文件完整文件名包括空的文件
-fprintf file format     打印文件格式
-ok command;             给用户命令执行操作,根据用户的Y 确认输入执行
-printf format           打印文件格式
-ls                      打印同种文件格式的文件.





===============================
2. 普通用户无错误查找:
===============================

    find / -name access_log 2>/dev/null

    说明:当普通用户使用"find”命令来查询某些没有相应权限文件目录时(Linux系统中系统管理员ROOT可以把某些文件目录设置成禁止访问模式)
,往往会出现"Permissiondenied."(禁止访问)字样。 2>/dev/null就是表明系统将把错误信息输送到stderrstream 2中.


--------------------------------
-exec command; 
--------------------------------
删除一个目录中的全部文件
cd “目的目录”
find . -name * -exec rm -f {} \;



-exec 参数后面跟的是 command命令,注意如下几点:

1) command命令的终止,使用 ';' (分号)来判定,在后面必须有一个 ';'
   出于不明原因, ';'需要用'\'来转义  ,所以命令整体形式为: -exec rm -f {} \;

2) '{}',使用{}来表示文件名,也就是find前面处理过程中过滤出来的文件,用于command命令进行处理



1.查询所有保护字符串“Hello”的文件

find / -exec grep "Hello" {} \;

2.删除所有临时文件

find / -name "*.tmp" -exec rm -f {} \;


3. 使用混合查找方式:
===============================

find /tmp -size +10000000c -and -mtime +2       // -and
find /    -user fred       -or -user george     // -or   在/tmp目录中查找属于fred或者george这两个用户的文件
find /tmp ! -user panda                         // -or   在/tmp目录中查找所有不属于panda的文件
命令就可以解决了。很简单。


这样出错

我系统是REDHAT AS4

我用这样可以

find /tmp !  \( -user 0 -o -user 500 -o -user 501 \) -exec ls -l {} \;

把用户名改成UID就可以了



转载地址:http://bbs.linuxtone.org/thread-472-1-1.html

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 58同城手机输入不合法怎么办 银行卡密码输入错误三次怎么办 私密相册系统升级后打不开怎么办 由于志愿没填好孩子没书读怎么办 文具店不开了货怎么办 华为手机通讯录联系人重复怎么办 vcf文件用表格打开乱码怎么办 表格打出来太小怎么办 企业列入经营异常名录怎么办 小米电视滚动字幕模糊怎么办 海信电视浑的看不清怎么办 电视打开特别暗看不清怎么办 诈骗电话按了键怎么办 上海油电混合送沪牌以后怎么办? 车子被前夫砸了怎么办 老的标书丢了怎么办 拍牌照的标书掉了怎么办 上海拍到车牌后怎么办 杭州4s店车牌怎么办 天津车牌有指标想买车怎么办 上海大牌拍中了怎么办 买新车牌下不了怎么办 临沂上小学没报上名怎么办 早教中心倒闭了怎么办 企业税没交联系不上法人怎么办 企业被拉黑法人联系不到怎么办 支票根写错了怎么办 月结客户不付款怎么办 退市整理期过了怎么办 老板跑了财务负责人怎么办 在南京加入嘀嘀代驾怎么办 苹果盗刷支付宝怎么办 街电支付宝掉了怎么办 转转上号器没有苹果版的怎么办 安卓6不支持的应用怎么办 银行卡被存款机吞了怎么办 去银行卡存款机器故障怎么办 银行卡存款没有存进去怎么办 被黑网站黑钱了怎么办 饿了吗账户异常怎么办 单位里有人整你怎么办