码迷,mamicode.com
首页 > 系统相关 > 详细

linux之find命令详解

时间:2015-11-04 21:09:16      阅读:304      评论:0      收藏:0      [点我收藏+]

标签:

用法

  find [path] 内容

参数

  -print: find命令将匹配的文件输出到标准输出
  -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为‘command‘ { } \;,注意{ }和\;之间的空格。

    find -exec rm -rf {} \;  将找到的文件删除
  -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 

    [root@mysql test]# find -ok rm -rf {} \;   
    < rm ... . > ? y  删除之前先询问

  -depth: #使查找在进入子目录前先行查找完本目录

  -maxdepth 指定最多查找几层

     find -maxdepth 1  不对当前目录下的子目录进行查找

     find -maxdepth 2  只对当前目录下的一级目录进行查找

按文件名称查找

  -name 支持通配符

查找以“.sh结尾的文件”
[root@mysql ~]# find -name *.sh ./tar.sh [root@mysql ~]#

 按文件时间戳查找

  -mtime   -n +n                #按文件更改时间来查找文件,-n指n天以内,+n指n天以前

  -atime    -n +n                #按文件访问时间来查

  -ctime    -n +n                #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

  -mmin   -n +n                #按文件更改时间来查找文件,-n指n分钟以内,+n指n分钟以前

  -amin    -n +n                #按文件访问时间来查

  -cmin    -n +n                 #按文件创建时间来查找文件,-n指n分钟以内,+n指n分钟以前

[root@mysql ~]# find -cmin -4   查找4分钟内创建的文件
.
./hhh
[root@mysql ~]# find -ctime +3   查找3天创建的文件
./.cshrc
./.bashrc
./.bash_profile
./.bash_logout
./anaconda-ks.cfg
./install.log.syslog
./.tar
./tar.sh
[root@mysql ~]# 

按文件类型查找

  -type   d/l/b/c/f/s

[root@mysql ~]# find -maxdepth 1 -type d   查看当前目录下都有哪些文件夹
.
./test
./.subversion
[root@mysql ~]#

按文件的属主,属组查找

  -nogroup                     #查无有效属组的文件,即文件的属组在/etc/groups中不存在
  -nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存

  -user    username             #按文件属主来查找
  -group groupname            #按组来查找

按文件权限查找

  -perm

[root@mysql ~]# find -perm 600 -exec ls -l {} \;    查找当前文件下权限为600的文件并以长格式显示
-rw------- 1 root root 49 11? 3 18:57 ./.lesshst
-rw-------. 1 root root 21820 11? 3 16:22 ./.bash_history
-rw------- 1 root root 19599 11? 1 01:38 ./.mysql_history
-rw------- 1 root root 5125 11? 3 00:18 ./.viminfo
-rw-------. 1 root root 1087 6? 13 21:14 ./anaconda-ks.cfg
[root@mysql ~]#

按文件的大小查找

  -size [-/+]n

  ‘b‘ for 512-byte blocks (this is the default if no suffix is used)

  ‘c‘ for bytes

  ‘w‘ for two-byte words

  ‘k‘ for Kilobytes (units of 1024 bytes)

  ‘M‘ for Megabytes (units of 1048576 bytes)

  ‘G‘ for Gigabytes (units of 1073741824 bytes)

[root@mysql ~]# find -size +20000c    查找大于20000c字节的文件
./.bash_history
./install.log
[root@mysql ~]# 
[root@mysql ~]# find -size 20000c    查找刚好20000c字节的文件
[root@mysql ~]# find -size -20000c   查找小于20000c字节的文件

查找的时候排除某个目录

   find /root/ -path "/root/test" -prune -o -print  查找除了/root/test目录之外的/root目录下的文件

查找的时候排除某一类文件

  “!”表示非

[root@mysql ~]# find -maxdepth 1 ! -name "\.*"  显示不是隐藏属性的文件
./test
./hhh
./install.log
./EOF
./test2
./anaconda-ks.cfg
./install.log.syslog
./tar.sh
[root@mysql ~]# 

 

linux之find命令详解

标签:

原文地址:http://www.cnblogs.com/along1226/p/4937235.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!