find指令: Linux下find命令在目录结构中搜索⽂文件,并执⾏行指定的操作。
命令格式: find pathname -options [-print -exec -ok ...]
命令功能: 用于在⽂文件树种查找⽂文件,并作出相应的处理(可能访问磁盘)
命令参数:
1). pathname: find命令所查找的目录路径。
例如用.来表⽰示当前目录,用/来表⽰示系统根目录,用~表示工作目录,..表示上级目录等。
2)
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执⾏行该参数所给出的shell命 令。
相应命令的形式为'command' { } \;,注意{ }和\; 之间的空格。
-ok: 和-exec的作⽤用相同,只不过以一种更为安全的模式来执⾏, 该参数所给出的shell命令,在执⾏行每1个命令之前,都会给出提示,让用户来确定是否执⾏。
例子: 1. 在/ l o g s目录中查找更改时间在5日以前的⽂件并删除它们: $ find logs -type f -mtime +5 -exec -ok rm {} \
3).options:命令选项:
(1)-name 按照文件名查找文件。
例:
$find ~ -name "*.txt" -print #在$HOME中查.txt文件并显示 $find . -name "[A-Z]*" -print #查以大写字母开头的文件 $find /etc -name "host*" -print #查以host开头的文件 $find . -name "[a-z][a-z][0–9][0–9].txt" -print #查以两个小写字母和两个数字开头的txt文件
(2)-perm 按照文件权限来查找文件。
例:
$find . -perm 755 -print
$find . -perm -007 -exec ls -l {} \; #查所有用户都可读写执行的文件同时列出
(3)-prune 使⽤这一选项可以使find命令不在当前指定的目录中查找,如果同时使⽤用-depth选项,那么-prune将被find命令忽略。
(4)-user / -group 按照⽂文件属主/组来查找⽂件。
例:
find /home -user cnscn 列出/home目录内属于用户cnscn的文件或目录
Find /home -group cnscn 列出/home内组为cnscn的文件或目录
(5)-mtime -n +n 按照⽂文件的更改时间来查找⽂文件, - n表⽰示⽂件更改时间距现在n天以内,+ n表⽰示⽂文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time 选项相同.
例:
Find /home -mtime -2 在/home下查最近两天内改动过的文件
find /home -atime -1 查1天之内被存取过的文件
find /home -mmin +60 在/home下查60分钟前改动过的文件
find /home -amin +30 查最近30分钟前被存取过的文件
(6)-nogroup 查找无有效所属组的⽂文件,即该文件所属的组在/etc/groups中不存在。
(7)-nouser 查找无有效属主的⽂文件,即该⽂件的属主在/etc/ passwd中不存在。
(8)-newer file1 ! file2 查找更改时间⽐比⽂文件file1新但⽐文件file2旧的⽂件。
例:
(7) find /home -newer tmp.txt!Temp.c 在/home下查更新时间比tmp.txt近但⽐文件Tep.c旧的⽂件。
(9)-type 查找某⼀一类型的⽂文件,诸如:b - 块设备⽂文件。d - 目录。
c - 字符设备⽂文件。p - 管道⽂文件。l - 符号链接⽂文件。f - 普通⽂文件。
例:
$find . -type d -print
$find . -type l -print
(10)-size n:[c] 查找文件长度为n块的文件,带有c时表⽰文件长度以字节计。
例:
$find . -size +1000000c -print #查长度大于1Mb的文件 $find . -size 100c -print # 查长度为100c的文件 $find . -size +10 -prin #查长度超过期作废10块的文件(1块=512字节
(11)-depth:在查找文件时,首先查找当前目录中的文件,然后再在其⼦目录中查找。
(12)-fstype:查找位于某⼀类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
(13)-mount:在查找⽂件时不跨越文件系统mount点。
(14)-follow:如果find命令遇到符号链接⽂件,就跟踪⾄链接所指向的⽂件。
(15)-cpio:对匹配的文件使⽤用cpio命令,将这些⽂件备份到磁带设备中。
2. Linux 用find命令查找文件⼤小为XX的⽂文件的办法
例:一个⽂文件5556字节,可以这样写 find /root -size -5557c -size +5555c -exec ls -ld {} \; 即查找⼤大于5555字节⼩小于5557字节的⽂文件,以上查找的是/root 目录
find /root -size -500K -size +50K -exec ls -ld {} \; 查找 ⼩小于500K,⼤大于50K的⽂文件