热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

详解Linux命令与文件查找

一、执行文件名查找 which(查找‘执行文件')  //根据PATH环境变量所规范的路径查询 which [-a] co

一、执行文件名查找

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

二、文件名的查找

1、whereis(寻找特定文件)

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

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


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

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


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


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

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命令与文件查找详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


推荐阅读
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文主要讨论了在xps15上安装双系统win10和MacOS后,win10无法正常更新的问题。分析了可能的引导问题,并提供了解决方法。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 树莓派Linux基础(一):查看文件系统的命令行操作
    本文介绍了在树莓派上通过SSH服务使用命令行查看文件系统的操作,包括cd命令用于变更目录、pwd命令用于显示当前目录位置、ls命令用于显示文件和目录列表。详细讲解了这些命令的使用方法和注意事项。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
author-avatar
流水无痕8676
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有