一、find基础说明
find [dir] [param] [match]
-print0
: 不换行输出内容,也可以理解\0 是定界符
二、find使用
2.1 使用文件名查找文件
|
|
2.2 使用mindepth
和maxdepth
限定搜索指定目录的深度
|
|
2.3 在find命令查找到的文件上执行命令
// 搜索后 {}将会被当前文件名取代
find -iname “MyCProgram.c” -exec md5sum {} \;
2.4 相反匹配
find -maxdepth 1 -not -iname “MyCProgram.c”
2.5 使用inode编号查找文件
列子:
|
|
2.6 根据文件权限查找文件
找到当前目录下对同组用户具有读权限的文件,忽略该文件的其他权限
find . -perm -g=r -type f -exec ls -l {} \;
找到对组用户具有只读权限的文件
find . -perm g=r -type f -exec ls -l {} \;
找到对组用户具有只读权限的文件(使用八进制权限形式)
find . -perm 040 -type f -exec ls -l {} \;
2.7 找到home目录及子目录下所有的空文件(0字节文件)
|
|
2.8 按照文件大小进行查找
|
|
2.9 按照文件类型进行查找
|
|
2.10 通过和其他文件比较修改时间查找文件
显示在指定文件之后做出修改的文件。下面的find命令将显示所有的在ordinary_file之后创建修改的文件。
|
|
2.11 给常用find操作取别名
若你发现有些东西很有用,你可以给他取别名。并且在任何你希望的地方执行。
常用的删除a.out文件。
alias rmao=”find . -iname a.out -exec rm {} \;”
rmao
删除c程序产生的core文件。
alias rmc=”find . -iname core -exec rm {} \;”
rmc
2.12 用find命令删除大型打包文件
find / -type f -name .zip -size +100M -exec rm -i {} \;”
//用别名rm100m删除所有大雨100M的.tar文件
alias rm100m=”find / -type f -name *.tar -size +100M -exec rm -i {} \;”
alias svnadmin=”/usr/local/subversion/bin/svnadmin”
2.13 查找某个字符串在目录下出现次数
|
|
是你要找的文件夹;如果是当前文件夹可以省略-type f 说明,只找文件-name “*.c” 表示只找C语言写的代码,从而避免去查binary;也可以不写,表示找所有文件 是你要找的某个字符串
2.14 [重要]删除空文件或者目录
删除空目录:
find . -type d -empty | xargs -n 1 rm -rf
删除空文件:
find . -name “*” -type f -size 0c | xargs -n 1 rm -f