详解Linux命令与文件查找

 更新时间:2019年04月15日 08:35:02   作者:一三先生  
这篇文章主要介绍了Linux命令与文件查找,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、执行文件名查找

which(查找‘执行文件’)  //根据PATH环境变量所规范的路径查询
which [-a] command         //其中参数-a是指列出找到所有命令,而非只显示找到的第一个
例如:which ifconfig

alt

二、文件名的查找

1、whereis(寻找特定文件)

whereis [-bmsu] filename/directoryname
-b :只找二进制的文件
-m :只找在说明文件manual路径下的文件
-s :只找source源文件
-u :查找不在上面三个规定下的特殊文件
例如:whereis ifconfig

alt

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即可

alt
alt

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小时为一天来计算,如下图所示:

alt

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

alt
alt

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

alt
alt

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字符串的文件

alt

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
  说明:至少有一类用户没有执行权限就是都有执行权限的取反

alt

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

相关文章

  • VmWare安装centos7无法上网的解决方法

    VmWare安装centos7无法上网的解决方法

    这篇文章主要为大家详细介绍了VmWare安装centos7无法上网的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    2018-10-10

  • Linux netstat命令详细解析

    Linux netstat命令详细解析

    以下是对Linux中的netstat命令进行了详细的介绍,需要的朋友可以过来参考下

    2013-08-08

  • Ubuntu16.04安装clion全过程及步骤详解

    Ubuntu16.04安装clion全过程及步骤详解

    这篇文章主要介绍了Ubuntu16.04安装clion全过程及步骤详解,clion是一款JetBrains 推出的全新的 C/C++ 跨平台集成开发环境,在Ubuntu系统下使用方便,下面给大家分享操作步骤,需要的朋友可以参考下

    2020-08-08

  • CentOS系统下Apache配置多域名或多端口映射的方法

    CentOS系统下Apache配置多域名或多端口映射的方法

    我们大多情况是一台服务器一个IP,这样配置起来很简单,但是如何想多域名多端口映射的话就没那么简单了,下面这篇文章主要介绍了CentOS系统下Apache配置多域名或多端口映射的方法,需要的朋友可以参考学习,下面来一起看看吧。

    2016-12-12

  • Linux下制作给ARM开发板使用的文件系统

    Linux下制作给ARM开发板使用的文件系统

    今天小编就为大家分享一篇关于Linux下制作给ARM开发板使用的文件系统,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    2018-12-12

  • Linux中openssl/opensslv.h找不到问题的解决方法

    Linux中openssl/opensslv.h找不到问题的解决方法

    最近在安装scrapy过程中碰到了openssl某个文件找不到的问题,通过查找相关的资料进行了解决,下面这篇文章主要给大家分享了关于Linux中openssl/opensslv.h找不到问题的解决方法,需要的朋友可以参考借鉴,下面来一起看看吧。

    2017-07-07

  • Linux如何设置服务自启动

    Linux如何设置服务自启动

    这篇文章主要介绍了Linux中设置服务自启动的三种方式,ln -s 建立启动软连接

    2015-11-11

  • 在Linux上识别同样内容的文件详解

    在Linux上识别同样内容的文件详解

    这篇文章主要给大家介绍了关于如何在Linux上识别同样内容的文件的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Linux具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    2019-06-06

  • Mac本地文件上传到CentOS云服务器方法

    Mac本地文件上传到CentOS云服务器方法

    Mac本地文件上传到CentOS中,可以使用scp指令可以完成。这篇文章给大家介绍了Mac本地文件上传到CentOS云服务器方法,需要的朋友跟随华域联盟小编一起看看吧

    2018-06-06

  • 详解linux 下安装软件tar.gz, rpm,deb的方法

    详解linux 下安装软件tar.gz, rpm,deb的方法

    本篇文章主要介绍了linux 下安装软件tar.gz, rpm,deb的方法 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

    2016-12-12

最新评论

声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。