find命令是非常常用非常强大的命令。
所以要特别说明。而且这个命令实在太常用了。
用法:
[root@kin /]#find [PATH] [option] [action]
参数:
1. 与时间有关的参数:共有 –atime ,-ctime , -mtime,下面以 –mtime说明。
n :为数字
-mtime n:意义在n天之前的‘一天之内‘被改过的。 n天前的一天之内;比如说:3天前的那一天里改过的文件显示出来。会用到这条命令
-mtime +n:列出在n天之前不含n天本身被更改过的文件名。比如说:3天前改的内容,就是,前第四天以前改的内容显示出来、
-mtime –n:列出在n天之内(含n天本身)更改过的文件名。
-newer file: file是一个文件,列出比file 还要新的文件名。
范例一下:
[root@kin /]# find -mtime 3
#显示3天前的那一天。我做了什么…
[root@kin /]# find -mtime +3
#显示3天以前。我做了什么…
[root@kin /]# find -mtime -3
#显示这三天里。我又做了什么…
画个图表达可能会更明了些:
2. 与用户或用户组名有关的参数。
n :是数字
-uid n: n 这个数字是用户的账号ID,即UID,这个UID是记录在/etc/passwd 里面与账号名称对应的数字,不知道用户ID 的可以 less /etc/passwd 查看。
-gid n: n 这里是组的ID,即GID,这个GID记录在/etc/group里面,如果不知道自己用户组ID 的。可以cat /etc/group 去看看
-user name: name为用户名称。[root@kin /]# find /var -user kin 这命令下去,可以看到/var目录里面 属于kin 用户的文件。
-group name: name为用户组名称。[root@kin /]# find /var -group kin 这命令下去,可以看到/var目录里面 属于kin 用户组的文件。
-nouser:寻找文件所有者不存在的文件
-nogroup: 寻找文件所有用户组不存在的文件
如果安装软件时。很可能软件的属性当中并没有文件所有着,
还有。有时候你删除了一个用户或者用户组。可是该用户或用户组以前创建的一些文件还留在你磁盘了。会出现这种情况。没有用户或用户组的文件
范例:
[root@kin /]# find / -nouser
#查找‘/‘ 目录下的属于不存在的用户的文件;
也就是说。查找不属于任何人了文件
[root@kin /]# find / -nogroup
#查找查找‘/‘ 目录下的属于不存在的用户组的文件
也就是说。查找不属于任何组了文件
3. 与文件权限及名称有关的参数。
-name filename: 查找文件名为 filename的文件。
-size [+-]SIZE :查找比size还要大(+) 或者还要小(-) 的文件。这个size 的规格有:c:代表byte ; k:代表1024 byte 。所以,要找比50KB大的文件,就是 find –tpye +50k . 找小的话:find –tpye -50k
-type TYPE:查找文件类型问TYPE的,类型主要有:一般正规的(f)。设备文件(b,c) 目录(d) ,链接文件(1) socket(s)。及FIFO(p)等属性。
-perm mode:查找文件属性刚好等于 ”mode ”的文件。这个mode为类似chmod 的属性值,例如:-rwxr-x-wx 的属性为0753 ;那么:[root@kin /]# find / -perm 0753
-perm -mode: 查找属性中包含有‘mode‘的全部权限的文件显示出来。例如:-rwxr-x-wx 的属性为0753 ;写入:[root@kin /]# find / -perm -0753
那么,-rwxrwxrwx,属性的文件也会显示出来。因为他已经包含了‘mode‘里面的所有属性。
-perm +mode: 查找属性中包含有‘mode‘的任意一个权限的文件显示出来。例如:-rwxr-x-wx 的属性为0753 ;写入:[root@kin /]# find / -perm +0753
那么,-rw-------,属性的文件也会显示出来。
因为他包含了‘mode‘中的一些属性。
4. 其他可进行的参数。
-exec command:command为其他的命令,-exec后面可再接其他命令来处理找到的结果 !(常用)
-print将打印结果到屏幕上,这个操作是默认操作。
范例:将上个范例找到的文件使用ls –l列出来、
[root@kin /]# find -name kinpui -exec ls -al {} ; #注意空格
# 将名字为kinpui 的文件 使用ls –al 方式显示在屏幕上面。-exec 后面的ls –l 就是额外的命令,命令不支持别名、
find 的特殊功能就是能够额外进行的的动作。
find –name kinpui |
-exec |
ls -al { }\; |
先执行它,执行完,等到结果,把结果交给ls程序里面的{} |
将find 执行后的结果显示出来。find的结果放在{}里面
|
-exec \;是关键字。代表find 额外命令的开始(-exec)到结束(\;)在这中间就是find命令的额外命令 |
{ }代表的是‘由 find 找到的内容’find 的结果会放到这里面来。
-exec 一直到 \;是关键字。代表find额外命令的开始(-exec)一直到(\;)结束;
在这中间的就是find 命令内的额外命令。在本例中式 “ls –al {}”.
因为“;“在bash环境下是有特殊意义的。因此利用反斜杠来转义。
要找出某文件包涵‘kin’内容的话。可以用命令:
[root@kin /]# find -name ‘*kinpui*’
--------鸟哥的私房菜189页
转载于:https://blog.51cto.com/kinpui/1310277