格式:
find path option file
path:查找的目录路径
option:按什么进行查找
file: 查找的文件特征
(如果查不到,就将文件名加""试试)
find -name april* 在当前目录下查找以april开始的文件
find -name april* > a.txt 在当前目录下查找以april开始的文件,并把结果输出到a.txt中
find -name ap* -o -name may* 查找以ap或may开头的文件
tmp下查找名为wa开头且类型为符号链接的文件。find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件。我们可以使用括号来强行改变测试和运算符的次序.因为这些对于shell来说有着特殊的意义,所以我们也需要使用反斜线将他们作为一个整体进行引用.另外,如果我们为文件名指定了匹配类型,我们也必须用引号进行引用,这样就可以避免他们被shell进行扩展,从而可以将他们直接传递给find命令.所以如果我们要写一个这样的测试,要查找比x文件要近或者是以一个范围开头的文件,我们要写成下面的形式:。
find /home -mtime -2 在/home下查最近两天内改动过的文件
find /home -atime -1 查/home下1天之内被存取过的文件
find /home -mmin +60 在/home下查60分钟前改动过的文件
find /home -amin +30 在/home下查最近30分钟前被存取过的文件
find /home -user cnscn 列出/home目录内属于用户cnscn的文件或目录。find /home -links +2 查硬连接数大于2的文件或目录。find /home -perm 0700 查权限为700的文件或目录。
find /home -anewer tmp.txt 在/home下查存取时间比tmp.txt近的文件或目录
find /home -used -2 列出/home中文件或目录被改动过之后,在2日内被存取过的文件或目录
find /home -user cnscn 列出/home目录内属于用户cnscn的文件或目录
find /home -uid +501 列出/home目录内用户的识别码大于501的文件或目录
find /home -group cnscn 列出/home内组为cnscn的文件或目录
find /home -gid 501 列出/home内组id为501的文件或目录
find /home -nouser 列出/home内不属于本地用户的文件或目录
find /home -nogroup 列出/home内不属于本地组的文件或目录
find /home -maxdepth 4 -name tmp.txt 列出/home内的tmp.txt 查时深度最多为3层
find /home -mindepth 3 -maxdepth 5 -name tmp.txt 在/home的第二层到第四层之间查tmp.txt
find /home -empty 查找/home中大小为0的文件或空目录
find /home -size +512k 查/home中大于512k的文件
find /home -size -512k 查/home中小于512k的文件
find /home -links +2 查/home中硬连接数大于2的文件或目录
find /home -perm 0700 查/home中权限为700的文件或目录
find命令匹配到了当前目录下的所有普通文件linux命令,并在-exec选项中使用ls-l命令将它们列出。上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。不同的文件类型在linux系统中采用不同的符号表示,普通文件使用第一个‘-’符号表示,当前linux系统shell下使用ll –lst命令列出工作目录下所有文件linux命令,该命令操作结果如下所示。
find -name a.txt -ok rm {} \; 查当前目录下的a.txt并询问是否删除
把当前目录下的file移动到/test下:
find -type f -exec mv {} /test \;
删除指定时间之前的文件:
find -type f -name *.log -mtime +180 -exec rm {} \;