文件查找命令 谁借莪1个温暖的怀抱¢ 2022-05-18 07:09 201阅读 0赞 * `locate`:不是实时的文件查找,根据全系统文件数据库进行查找的,模糊查找,但是速度较快 `update` 命令用来生成文件数据库;`locate reads one or more databases prepared by updatedb(8) and writes file names matching atleast one of the PATTERNs to standard output, one per line` ![这里写图片描述][70] * 最常使用的命令是`find`,实时查找,精确查找,通过遍历目录中的所有文件的查找,但是速度慢; * 格式:`find 查找路径 查找标准 查找以后的处理操作`,默认为当前目录进行查找; * 查找标准: * `-name filename`:用来做精确查找;支持文件名通配: * `*`:任意长度任意字符; * `?`:任意单个字符; * `-iname filename`:表明在匹配不区分大小写; * `-regex PATTERN`:基于正则表达式实现文件名匹配; * `-user USERNAME`:进行用户查找; * `-group GROUPNAME`:按照组进行查找; * `-uid uidname`:按照 `uid`进行查找,因为一个用户删除之后,不在用户家目录里面的文件仍然是存在的,并且属主为之前用户的`uid`,对于这些文件的管理需要使用`uid`进行查找; * `-gid gidname`:按照 `gid`进行查找,对于组的概念和上面是一样的; * `-nouser`:查找没有用户的文件; * `-nogroup`:查找没有属组的文件;注意:用户或者组再被使用`-r`删除后,用户或者租 的`id` 号仍然存在,这个用户的文件任然是存在的; * `-type`通过类型进行查找: * `f`:普通文件; * `d`:目录文件; * `c`:字符设备; * `b`:块设备; * `l`:链接文件; * `p`:管道设备; * `s`:套接字文件; * `-size`:\#单位 `k|M|G`:同样可以使用`+-`号表示大于或者小于该大小,在一定范围内的都会显示; * 组合条件进行查找: * `-a`:表示需要同时满足; * `-o`:表示两种中间满足一个; * `-not`:表示非; * 例如:`find /tmp –type – not –d –a –not –f`:表示查找不是目录并且不是套接字的文件; * `find ./ -not –user user1 –o –not –type d` 等价于 `find ./ -not \( -user user1 –a –type d \)`; * 根据时间戳进行查找: * `-mtime` :表示修改时间; * `-ctime`:表示文件的修改时间; * `-atime`:表示文件的访问时间; * 支持使用`+|-`进行修饰,上面表示的时间单位是天,如果不使用表示精确到某一个时刻;`-`:表示多久时间之内访问的文件;`+`:表示多久时间之前访问的文件;`5`:表示`5`天之前访问的文件;`-5`:表示五天之内访问的文件;`+5`:表示五天之前访问的文件; * 同样也支持精确到分钟的操作: * `-mmin`:表示修改时间; * `-amin`:表示访问时间; * `-cmin`:表示改变时间; * 按照权限进行查找: * `-perm MODE`:表示精确匹配,; * `\MODE`:表示只要有一个权限匹配到就可以; * `-perm –mode` :当文件权限完全包含`mode`时,才可以进行匹配; * `find ./ perm -001` * `find`执行的动作: * `-print`:显示; * `-ls`:类似 `ls –l` 的形式显示每一个文件的详细信息; * `-ok command {} \;`:使用`\;`结尾,否则就是语法错误,作为文件名称占位符号;`find ./ -perm -mode 001 -ok chmod o-x {} \;`这种方式是需要确认的 * `-exec command {} \;`: 这里是不会存在提示信息的; * `find /etc –size +1M –exec echo {} >> /tmp/etc.largefiles \;` 作用等价于 `find /etc –size +1M | xargs echo >> /tmp/etc.largefiles`; [70]: /images/20220518/bdc1c063753741c3a21d6cefc97b786e.png
还没有评论,来说两句吧...