1.find命令的一般形式:
find pathname -options [-print -exec -ok]
pathname find命令所查找的目录路径
2.使用name选项:
find /etc -name "host*" -print 在/etc目录中查找文件名以host开头的文件
find . -name "[A-Z]*" -print 在当前目录中查找文件名以一个大写字母开头的文件
3.使用perm选项:
find . -perm 755 -print 在当前目录下查找文件权限为755的文件
4.使用prune选项,忽略某个目录:
find /apps -name "/apps/bin" -prune -o -print 在/apps目录下查找文件,但不希望在/apps/bin目录下查找
5.使用user和nouser选项:
find ~ -user dave -print 在$HOME目录中查找文件属主为dave的文件
find /home -nouser -print 在/home目录下查找属主账户已经被删除的文件
6.使用group和nogroup选项: 使用方法同上
7.按照更改时间查找:
find / -mtime -5 -print 在根目录下查找更改时间在5日以内的文件
find /var/adm -mtime +3 -print 在/var/adm目录下查找更改时间在3日以前的文件
8.查找比某个文件新或旧的文件:
find . -newer age.awk ! -newer belts.awk -exec ls -l {} \; 查找更改时间比文件age.awk新但比文件belts.awk旧的文件
假设现在的时间是23:40,希望查找更改时间在两个小时以内的文件
首先可以创建这么个文件:touch -t 05042140 dstamp
然后在当前目录下查找更改时间在两个小时以内的文件:find . -newer dstamp -print
9.使用type选项:
find . ! -type d -print 在当前目录下查找除目录意外的所有类型的文件
find /etc -type l -print 在/etc目录下查找所有的符号链接文件
10.使用size选项:
find . -size +1000000c -print 在当前目录下查找文件长度大于1M字节的文件
find /home/apache -size 100c -print 在/home/apache目录下擦汗找文件长度恰好为100字节的文件
11.使用depth选项:
find / -name "COM.FILE" -depth -print 从文件系统的根目录开始,查找一个名为CON.FILE的文件,它将首先匹配所有的文件然后再进入子目录中查找
12.使用exec或ok来执行shell命令:
exec选项后面跟随着所要执行的命令,然后是一对儿{},一个空格和一个\,最后是一个分号。
find . -type f -exec ls -l {} \; 匹配当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出
find logs -type f -mtime +5 -exec rm {} \; 在/logs目录中查找更改时间在5日以前的文件并删除它们
-ok是-exec的安全模式
find . -name "*.LOG" -mtime +5 -ok rm {} \; 在当前目录中查找所有文件名以.LOG结尾,更改时间在5日以上的文件,并删除他们,不过在删除之前会给出提示。按y键删除,按n键不删除
find pathname -options [-print -exec -ok]
pathname find命令所查找的目录路径
2.使用name选项:
find /etc -name "host*" -print 在/etc目录中查找文件名以host开头的文件
find . -name "[A-Z]*" -print 在当前目录中查找文件名以一个大写字母开头的文件
3.使用perm选项:
find . -perm 755 -print 在当前目录下查找文件权限为755的文件
4.使用prune选项,忽略某个目录:
find /apps -name "/apps/bin" -prune -o -print 在/apps目录下查找文件,但不希望在/apps/bin目录下查找
5.使用user和nouser选项:
find ~ -user dave -print 在$HOME目录中查找文件属主为dave的文件
find /home -nouser -print 在/home目录下查找属主账户已经被删除的文件
6.使用group和nogroup选项: 使用方法同上
7.按照更改时间查找:
find / -mtime -5 -print 在根目录下查找更改时间在5日以内的文件
find /var/adm -mtime +3 -print 在/var/adm目录下查找更改时间在3日以前的文件
8.查找比某个文件新或旧的文件:
find . -newer age.awk ! -newer belts.awk -exec ls -l {} \; 查找更改时间比文件age.awk新但比文件belts.awk旧的文件
假设现在的时间是23:40,希望查找更改时间在两个小时以内的文件
首先可以创建这么个文件:touch -t 05042140 dstamp
然后在当前目录下查找更改时间在两个小时以内的文件:find . -newer dstamp -print
9.使用type选项:
find . ! -type d -print 在当前目录下查找除目录意外的所有类型的文件
find /etc -type l -print 在/etc目录下查找所有的符号链接文件
10.使用size选项:
find . -size +1000000c -print 在当前目录下查找文件长度大于1M字节的文件
find /home/apache -size 100c -print 在/home/apache目录下擦汗找文件长度恰好为100字节的文件
11.使用depth选项:
find / -name "COM.FILE" -depth -print 从文件系统的根目录开始,查找一个名为CON.FILE的文件,它将首先匹配所有的文件然后再进入子目录中查找
12.使用exec或ok来执行shell命令:
exec选项后面跟随着所要执行的命令,然后是一对儿{},一个空格和一个\,最后是一个分号。
find . -type f -exec ls -l {} \; 匹配当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出
find logs -type f -mtime +5 -exec rm {} \; 在/logs目录中查找更改时间在5日以前的文件并删除它们
-ok是-exec的安全模式
find . -name "*.LOG" -mtime +5 -ok rm {} \; 在当前目录中查找所有文件名以.LOG结尾,更改时间在5日以上的文件,并删除他们,不过在删除之前会给出提示。按y键删除,按n键不删除