小知识:详解Linux命令与文件查找

一、执行文件查找

which(查找‘执行文件)  //根据PATH环境变量所规范的路径查询

which [-a] command         //其中参数-a是指列出找到所有命令,而非只显示找到的第一个

例如:which ifconfig

%小知识:详解Linux命令与文件查找-猿站网-插图

二、文件名的查找

1、whereis(寻找特定文件)

whereis [-bmsu] filename/directoryname

-b :只找二进制的文件

-m :只找在说明文件manual路径下的文件

-s :只找source源文件

-u :查找不在上面三个规定下的特殊文件

例如:whereis ifconfig

%小知识:详解Linux命令与文件查找-1猿站网-插图

2、locate

依赖于事先构建好的索引库,查找速度快;

用法:locate [-ir] keyword

 -i : 忽略大小写的差异

 -r : 后面可接正则表达式的显示防方式

例如:locate ifconfig

说明:lcoate是根据/var/lib/mlocate内记录数据查找,而数据来源通过更新数据库updatedb根据/etc/updatedb.config的配置从硬盘获取数据更新到/var/lib/mlocate;

注意:whereis和locate命令可能搜索到已经删除的文件,原因数据库没及时更新(一般一天更新一次),不过可以手动执行updatedb更新。

 安装locate:

  yum -y install mlocate

 查看包:

  yum search mlocate

 安装好更新数据库该命令才生效:

  直接执行updatedb即可

%小知识:详解Linux命令与文件查找-2猿站网-插图 %小知识:详解Linux命令与文件查找-3猿站网-插图

3、find

实时查找工具,通过遍历指定目录下的文件系统层级结构完成文件查找;

工作特性:

查找速度略慢;

精确查找;

实时查找;

用法:

find [option] [PATH] [查找条件] [action]

查找条件:指定查找标准,可以根据文件名、大小、类型、从属关系、权限等标准进行;

action:对符合查找条件的文件作出操作,例如删除操作;

查找条件:

1)根据时间查询

以‘天为单位:

 -atime、-ctime、-mtime

 以mtime为列

  -mtime n :n为数字,在n天前的‘一天之内被改过的文件;

  -mtime -n :n天内(包含第n天),修改过的文件;

  -mtime +n :n天前(不包含第n天),修改过的文件;

以‘分为单位:

 -amin、-mmin、-cmin

说明:时间的计算从现在开始以24小时为一天来计算,如下图所示:

%小知识:详解Linux命令与文件查找-4猿站网-插图

2)根据用户和用户组来查询

-uid n:其中n即指定属主的UID,在/etc/passwd可以查看;

-gid n:其中n即指定属组的GID,在/etc/group可以查看

-user name: 查找属主为name的文件;

-group name:查找属组为name的文件;

-nouser:查找/etc/passwd中没得属主的文件;

-nogroup:查找/etc/group中没得属组的文件;

 例如:find /home -user legayu

%小知识:详解Linux命令与文件查找-5猿站网-插图 %小知识:详解Linux命令与文件查找-6猿站网-插图

3)根据文件名和文件权限查找

-name ‘pattern:查找文件;

-iname ‘pattern:同-name,但忽略查找的文件大小写;

 支持glob通配符*,?,[],[^];

-type TYPE:查找文件类型为TYPE的文件,常见的文件类型有正规文件(f)、设备文件(b、c)、目录(d)、连接文件(l)、socket(s)、及FIFO文件(p)等属性;

-size [+-]SIZE:查找比SIZE还大(+)或还小(-)的文件,大小规格:c:代表byte,k:代表1024byte,还可用M、G表示:MB和GB,如查找大于50kB的文件:-size +50k

-perm mode:查找文件权限“刚好等于”mode的文件;

-perm -mode:查找文件权限“必须包含全部”mode的文件;

-perm /mode:查找文件权限“包含任一”mode的文件;

 例如:find / -name passwd

%小知识:详解Linux命令与文件查找-7猿站网-插图 %小知识:详解Linux命令与文件查找-8猿站网-插图

4)组合逻辑

与:-a

或:-o

非:-not,!

 说明:逻辑关系拆分与合并

  !A -a !B = !(A -o B)

  !A -o !B = !(A -a B )

例如:

 查找/tmp中非root用户的文件

  两种方法:

   find /tmp -not -user root -ls

   find /tmp -not -uid 0 -ls   

找出/tmp目录下属主为非root,而且文件名不包含fstab字符串的文件

%小知识:详解Linux命令与文件查找-9猿站网-插图

5)find特殊功能

对查询的结果做操作

 -print:输出至标准输出;默认的动作;

 -ls:类似于对查找到的文件执行“ls -l”命令,输出文件的详细信息,这里不可以使用‘ll别名;

 -delete:删除查找到的文件;

 -fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中;

 -ok COMMAND {} \;   :对查找到的每个文件执行由COMMAND表示的命令;每次操作都由用户进行确认;

 -exec COMMAND {} \;  :对查找到的每个文件执行由COMMAND表示的命令;

注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令;

 但是有些命令不能接受过长的参数,此时命令执行会失败;

 另一种方式可规避此问题:

  即find | xargs COMMAND

如:find /root -perm +644 -exec ls -l {} \;

 说明:其中的{}指find查找到的内容,‘\;代表结束符‘\是转义符

举例:

 查找/etc目录下所有用户都没有写权限的文件;

  ~]# find /etc -not -perm /222 -type f -ls 

  说明:所有用户至少有一个写的权限,则取反就是都没有写权 

 查找/etc目录至少有一类用户没有执行权限的文件;

  ~]# find /etc -not -perm -111 -type f -ls

  说明:至少有一类用户没有执行权限就是都有执行权限的取反

%小知识:详解Linux命令与文件查找-10猿站网-插图

以上所述是小编给大家介绍的了Linux命令与文件查找详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:https://blog.csdn.net/JJGY2015/article/details/89303857

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:ELK与Grafana联合打造可视化监控来分析nginx日志

2023-3-17 4:21:46

建站知识

小知识:Nginx中location匹配以及rewrite重写跳转详解

2023-3-17 4:31:14

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索