Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25014
  • 博文数量: 13
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 182
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-05 14:29
文章分类

全部博文(13)

文章存档

2013年(13)

我的朋友

分类: 其他平台

2013-05-27 17:41:27

  在Linux系统维护工作时,经常会查找文本文件。

  例如:假如:web服务器经常出现延迟,或者经常会出现一些参数的错误信息。

  1、考虑带宽问题

  2、考虑我的配置文件问题:

  例如:是不是被其它人更改过所造成的参数、延迟等信息,这样我们就会用到find命令来查找文件的相关信息,并加以修改。

  如果我们做系统运维这方面的工作时,会经常用到find命令来帮助我们完成文件的查找工作,所以我们要认真学习find命令的使用及其相关的高级用法:

  文件查找:locate、find

  locate:

  非实时,模糊匹配,查找是根据全系统文件数据库进行的;

  # updatedb, 手动生成文件数据库

  find:

  实时

  精确

  支持众多查找标准

  遍历指定目录中的所有文件完成查找,速度慢;

  查找路径:默认为当前目录

  查找标准:默认为指定路径下的所有文件

  处理运作:默认为显示

  1、find命令的一般形式为;

  find 查找路径 查找标准 查找到以后的处理运作

  find pathname -options [ -exec -ok ...]

  2、find命令的参数;

  pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

  -print: find命令将匹配的文件输出到标准输出。

  -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。

  -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

  3、find命令选项

  -name :按照文件名查找文件

  For example:在/etc目录下查找文件名passwd的文件

  # find /etc -name 'passwd'

  -iname:按照文件名查找文件,且不区分大小写

  For example:在/etc目录下查找文件名passwd的文件

  # find /etc -iname 'passwd'

  -user:按照文件属主来查找文件

  For example:在/tmp目录下查找属主为hdoop的文件或目录

  # find /etc -user hdoop

  -group :按照文件所属的组来查找文件

  For example:在/tmp目录下查找属组为hbase的文件或目录

  # find /tmp -group hbase

  -uid:UID:当某个用户被删除,用户所属的文件UID没有被删除,在这个情况下就可以使用此选项

  For example:用户hdoop的UID为600,如果将hdoop用户删除,那如何在/tmp查找文件或目录的属主为hdoop以前的文件呢

  # find /tmp -uid 600

  -gid:GID:当某个组被删除,用户所属的文件GID没有被删除,在这个情况下就可以使用此选项

  For example:组hbase的GIDD为666,如果将hbase组删除,那如何在/tmp查找文件或目录的属组为hbase以前的文件呢

  # find /tmp -gid 666

  -nouser:查找没有有效所属主的文件,即该文件所属的主在/etc/passwd中不存在

  For example:查找/tmp目录没有属主的文件

  # find /tmp -nouser

  -nogrouop:查找没有有效所属组的文件,即该文件所属的组在/etc/groups中不存在。

  # find /tmp -nogroup

  -type:以文件类型查找文件

  在Linux文件系统中常用到的文件类型有:

  b:块设备文件

  d:目录

  c:字符设备文件

  p:管道文件

  l:符号链接文件

  f:普通文件

  s:套接字设备文件

  p:管道设备文件

  For example:查找/tmp目录下所有普通文件

  # find /tmp -type f

  -size: [+|-]文件大小查找文件

  默认单位是字节,当我们去找10M的文件时,所有9点几兆的文件都满足条件。

  #k:(#代表数字)

  #M:(#代表数字)

  #G:(#代表数字)

  For example:查找/tmp目录下文件大小为10MB的文件

  # find /tmp -size 10M

  组合条件:

  -a:与条件

  -o:或条件

  -not:非条件

  For example:查找/tmp目录下没有属主并且类型为目录的文件

  # find /tmp -nouser -a -type d -ls

  假如把-a换成-o选项:则说明没有属主或是目录文件,两个选项满足一个即可。

  # find /tmp -not -type d

  说明在/tmp目录查找非目录类型的文件

  查找/tmp目录下,非目录类型,并且还不是套接字类型的文件

  # find /tmp -not -type d -a -not -type s

  # find /tmp -not \( -type -d -o -type -s \)

  两者都可以实现目的

  

阅读(446) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~