Linux基础命令--(二)

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键不删除


猜你喜欢

转载自blog.csdn.net/ymj7150697/article/details/7345049