Linux命令 - Find

来源:互联网 发布:行知实验园 编辑:程序博客网 时间:2024/06/05 08:35

命令格式:

Find  路径   -ption [ -print ]    [ -exec  -ok  command  ]    {}  \;


时间戳:
# Access time(atime)  取用文件时间 :凡是读取或查看而不修改文件的操作,例如cp、head、tail、cat、more、less、grep、awk、sed,就会改变文件的 Access  time
# Modify  time  (mtime)    内容修改时间:凡是文件内容有改动或存盘的操作,就会改变文件的Modify time
# Change  time (ctime)   状态改变时间:凡是文件属性、位置改动的操作,例如chmod、chown、mv、ln做硬链接等,就会改变文件的Change  time
Note:

如果创建文件,则3个时间全部改变

ls  -l  查看文件时,显示的时间就是Modify  time

ln   -s  做文件的软连接会改变文件的取用时间,做硬链接会改变文件的状态改变时间


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

-exec:      find命令将匹配到的文件执行该参数所给出的shell命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠,{} 花括号代表前面find查找出来的文件名。

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


命令参数 -ption:

-type                查找某一类型的文件,诸如:

             f       -  普通文件

             d      -   目录文件

             l       -   链接文件

            p     -   管道文件

            b     -   块设备文件

            c       -  字符设备文件

-perm    按照文件权限查找文件

            -perm   775     100%的匹配,多了或少了的权限就不是100%的匹配

            -perm   -775    只能比等于775或比775权限多,不能少的匹配

            -perm   +6000   匹配4000、2000、6000、6600等权限

-links    +n    查找硬链接数大于n的文件或目录

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

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

-size    +1000000c        查找大于1M字节的文件,c表示字节,+代表大于,-代表小于

-mtime/-mmin   -/+n      按照文件修改时间来查找文件,-n指n天或者分钟以内,+n指n天或者分钟以前

-atime/-amin    --/+n     按照文件取用时间来查找文件,-n指n天或者分钟以内,+n指n天或者分钟以前

-ctime/-cmin     -/+n    按照文件改变时间来查找文件,-n指n天或者分钟以内,+n指n天或者分钟以前

-name            按照文件名查找文件

-empty     查找空的文件或目录

-iname       不区分大小写查找

-and            并且

-or           或者

-cpio         对匹配的文件使用cpio命令,将这些文件备份到磁带设备中

-fstype    查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统地信息

-false       查找系统中总是错误的文件

-mount    在查找文件时不跨越文件系统mount点

-follow     如果find命令遇到符号连接文件,就跟踪至链接所指向的文件




实例:

/mnt下查找名称为april*的目录

  find    /mnt  -type d  -name   april* 

找出linux中带有s的权限的文件

      find  / -type  f  -perm   +6000

 查找小于1,500字节大小的文件并把结果输出到file中

      find /  -type f  -size -1500c  >    file  

要查找磁盘中大于3M的文件并且删掉

      find /   -type  f -size +3000k -exec rm -rf {} \;

find出来的东西且文件系统类型为vfat的文件拷到另一个地方

      find   /  -type f   -name    *.c -fstype   vfat  -exec    cp   {}      /tmp    \;    

/tmp中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名 A) 

      find    /tmp  -type f  -name  "*.h"    -exec grep  "SYSCALL_VECTOR"    {}    \;  

0 0
原创粉丝点击