本文详细介绍了Linux中Find命令的相关知识
在文件系统中,我们常常会去查找某个文件,而在Linux中locate和find都是用于查找文件的。
其中locate命令是非实时查找,它会根据数据库进行查找,所以速度快,但属于模糊查找。命令的格式是 # locate FILE。而find是实时查找,精确匹配,但速度慢。
(1)命令格式
#find [查找位置] [查找标准] [处理动作]
查找位置:默认为当前目录;
查找标准:默认为查找指定目录下的所有文件;
处理动作:默认为显示到标准输出。
(2)选项
1.查找标准选项:
-uname "文件名称" :根据文件名查找(支持glob)
-iuname "文件名称" :根据文件名查找,但是不区分大小写
-user USERNAME :根据属主查找
-group GRPNAME :根据属组查找。这里不在举例
-uid UID:根据uid查找
-gid GID:根据gid查找
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
-type:根据文件类型查找
-size :根据文件大小查找
这里有些特殊,例如# find -size 12M执行后只会显示大小为11M到12M之间的文件。而# find -size +2M则是显示文件大小大于2M的文件,# find -size -2M则是显示文件大小小于2M的文件。常用的单位有k(必须小写),M(大写),G(大写)
-atime [+|-]#:查找最后#天访问的文件,类似的命令还有-amin
-mtime [+|-]#:查找最后#天修改的文件,类似的命令还有-mmin
-ctime [+|-]#:查找最后#天改变的文件,类似的命令还有-cmin
-perm [+|-]MODE:根据权限查找
没有[+|-]表示精确权限匹配
+MODE:任何一类用户的任何一位权限匹配即可
-MODE:3类用户的每一位权限都需要包含
2.组合条件查找选项:
-a:与(默认)
-o:或
-not,!:非
例如:查找/tmp目录下没有属主,并且文件名以一个字符.test文件:
# find /temp -name "?.test" -nouser -ls
3.处理动作选项:
-print:打印查找到的文件
例如把30天没访问的文件改为原文件名.old:
# find /tmp -atime +30 -exec mv {} {}.old \;
转载于:https://blog.51cto.com/xlows/1399183