首页 > 代码库 > find命令详解

find命令详解

-name
按照文件名查找文件。
 

find . -name "*.c"在当前目录及其子目录(用“.”表示)中查找任何扩展名为“c”的文件

-perm
按照文件权限来查找文件。

-user / -group
按照文件属主/组来查找文件
-mtime -n +n
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。
  find / -mtime -5 –print在系统根目录下查找更改时间在5日以内的文件
  find /var/adm -mtime +3 –print在/var/adm目录下查找更改时间在3日以前的文件
-type
查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n:[c]
查找文件长度为n块的文件,带有c时表示文件长度以字节计
 find . -size +1000000c –print 在当前目录下查找文件长度大于1M字节的文件

find与xargs

  有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。

例子:
  find . -type f -print | xargs file查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件

  find / -name "core" -print | xargs echo "">/tmp/core.log 在整个系统中查找内存信息转储文件(core dump),然后把结果保存到/tmp/core.log 文件中:

  find . -type f -print | xargs grep "hostname"用grep命令在所有的普通文件中搜索hostname这个词

  find ./ -mtime +3 -print|xargs rm -f –r删除3天以前的所有东西 (find . -ctime +3 -exec rm -rf {} \;)

  find ./ -size 0 | xargs rm -f & 删除文件大小为零的文件

find命令详解