-1 linux的查找命令有两个:
locate find
locate:有一个索引库,故速度快,但是新加入的一般不再索引库中,故可能无法查到
find:搜索速度慢,但是功能及其强大,可以追加命令动作进行处理
-2 find命令格式
find 查找位置 查找标准(可有多个标准) 查找后动作
eg1: find /home -type f -mmin -5 -ls -exec mv {} {}.bak \; #查找/home中5分钟以内修改过的文件,并将文件属性列出,同时将找出的文件追加后缀.bak
*多个标准之间可用-a -o -not进行连接,-a是并,-o是与,-not取反
-3 find命令常用的一些标准选项
--1 type [fcblsdp]
f 文件 c 字符设备 b 块设备 l 链接文件 s 套接字文件 d 目录 p 管道文件
eg:请看eg1
--2 访问时间(cat之类的也算) 内容修改时间 属性修改时间(名字,权限之类的)
-atime -mtime -ctime 以天为单位的时间标准
-amin -mmin -cmmin 以分钟为单位的时间标准
eg:请看eg1
*给一个目录添加文件,那么目录记录的信息发生变化,则motify发生变化,与此同时因为目录增加了信息,导致目录大小变化,故c也发生变化,因为目录大小也是属性
--3 -perm #按照权限标准
+mode #匹配mode中任意一位包含的权限
eg:find /home -perm +114 #搜索/home下权限为114、104、110、100、014、004、010的文件
-mode #匹配mode中三位都包含的权限
eg:find /home -perm -115 #搜索/home下权限为111、114的文件
mode #匹配和mode完全一样的
eg:find /home -perm 115 #搜索/home下权限为115的文件
--4 -size [+-][kMG] #按照大小标准
+[kMG] #比此标准大的文件
-[kMG] #比此标准小的文件
[kMG] #等于此标准的文件
--5 -name [file_name] #以名称为标准
-iname [file_name] #以名称为标准(忽略大小写)
--6 -uid -gid #以用户id和组id为标准为查找
--7 -nouser #查找没有属主的文件
-nogroup #查找没有属组的文件
-user USERNAME #根据属主查找;
-group GRPNAME #根据属组查找;
-4 查找后动作
--1 -exec command \;
eg:请看eg1
--2 | xargs command
eg:find /home -type f -mmin -5 | xargs mv {} {}.bak #使用xargs不能用-ls因为xargs获取的是管道过来的信息,-ls传递过来的并不是准确的文件名
--3 -ok command \; #与-exec的区别在于,有修改的时候,会有提示