iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >文件搜索者--find命令详解
  • 254
分享到

文件搜索者--find命令详解

2024-04-02 19:04:59 254人浏览 泡泡鱼
摘要

1. 文件查找:  在linux系统中由于文件的众多,往往需要在众多的文件当中查找某一个文件,如果时间一长,很难记得文件存放至何处,不过,这一点,你不比担心,因为开发人员为我们提供了强大的文件搜索

1. 文件查找:


  在linux系统中由于文件的众多,往往需要在众多的文件当中查找某一个文件,如果时间一长,很难记得文件存放至何处,不过,这一点,你不比担心,因为开发人员为我们提供了强大的文件搜索工具,下面将介绍两款常用的文件查找工具locate,和find,这两款查找工具只能是从文件系统中查找不能在内存当中查找,因为内存是没有文件系统的。


2. locate命令:


  locate命令是基于数据库来查找文件的,命令查找速度快,一般查找跟新慢的,名字变化少的,如:配置文件,可以用locate查找,因为数据库需要更新,所以就会有一点延迟,locate命令一般是每天更新一次数据库,所以有可能最新创建的文件找不到,或者刚刚删除的文件任在数据库当中。可以使用updatedb更新数据库信息,数据库文件:/var/lib/mlocate/mlocate.db

 locate 用法:

  locate 选项 参数

选项:

-e 排除在寻找范围之外。

-q 安静模式,不显示任何错误信息

-n 最多显示#个输出

-r 支持正则表达式

-i 忽略大小写

-b 基名

示例:

[root@cnode6_8 etc]# locate -r'\<functions$' -n 3
/etc/rc.d/init.d/functions
/etc/sysconfig/network-scripts/network-functions
/lib/lsb/init-functions


3. find命令:


  用来在指定目录下查找文件。功能十分强大,可以根据各种条件进行查找,如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

语法:

  find 选项 查找路径 查找条件 处理动作

选项:

根据文件名和iNode查找:

-name 支持使用通配符* ? [] [^] 根据文件名查找

-iname 不区分大小写的根据文件名查找

-inum # 根据#指定的iNode号查找

-samefile 相同iNode号相同的文件,也就是硬链接

-link # 链接数为#的文件

-regex 使用正则表达式匹配文件

根据文件属组和属主查找:

-user 根据属组为指定用户UID查找文件

-grop 查找属组问指定组的文件

-gid根据gid号码查找文件

-nouser查找没有属主的文件

-nogrop查找没有属组的文件

根据文件类型:

-type

f 普通文件

d 目录文件

l 符号链接文件

s 套接字文件

b 块设备文件

c 字符设备文件

p 管道文件

组合条件:

-a 与

-o 或

-not !非

根据文件大小查找:可以查找指定范围大小(带单位k,M,G)的文件

-size [+|-]#unit

# unit (#-1,#] 区间前开后闭

-#unit [0.#-1]

+#unit (#,∞)

根据时间戳查找:可以以天或分钟为单位

[+|-]#参数意义:#:[#,#+1],+#:[#+1, ∞], -# [0,#)

-atime 访问时间

-mtime 修改时间

-ctime 改变时间

以分钟为单位的三种时间

-amin

-mmin

-cmin

根据权限查找:-perm [/-] mode

mode 精确权限匹配

/mode 每一位只要有一类匹配的就行

-mode 每一类必须同时拥有mode指定的权限

0 表示不关注,权限随意

查找完成的处理动作:

-ls 类似于ls –l 命令可以显示文件详细列表

-delete 删除查找到的文件

-fls 查找到的文件都以长格式形式保存在文件当中

-ok command {} \;对查找到的文件执行command之前都会交互式的询问用户

-exec command {} \;类似于上一个命令,不需要交互,直接默认执行

排除查找的目录:

-prune(修减)不包含的文件或目录

补充:

关于时间大小方面参数数字的意义和示例:如查找文件大小为12k,表示查找的文件是大于等于11k,小于12k,是指定的值减1得到的,+6k表示查找文件7k(大于6k)到正无穷

-6k表示0到5k(包含5k,小于6k)的文件


4. find查找文件实例:


1、查找/var目录下属主为root,且属组为mail的所有文件

[root@Centos7 ~]# find /var/ -user root-group mail -ls
201334650   0 drwxrwxr-x   2 root     mail   50 Aug 13 12:54/var/spool/mail
205749525   0 -rw-------   1 root     mail   0 Aug 13 12:54 /var/spool/mail/root


2、查找/var目录下不属于root、lp、gdm的所有文件

[root@centos7 ~]# find /var/    -not \( -user root -o -user lp -o -user gdm\)


3、查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件

[root@centos7 ~]# find /var/ -mtime -7 -not\(  -user root -o -user postfix  \)


4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件

[root@centos7 ~]# find / -nouser -nogroup-atime -7


5、查找/etc目录下大于1M且类型为普通文件的所有文件

[root@centos7 ~]# find /etc/ -size +1M-type -f
find: Arguments to -type should containonly one letter
[root@centos7 ~]# find /etc/ -size +1M-type f
/etc/selinux/targeted/policy/policy.29
/etc/udev/hwdb.bin
/etc/brltty/zh-tw.ctb


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

[root@centos7 ~]# find /etc/ -not -perm/222 –ls


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

[root@centos7 ~]# find /etc/ -perm -111 -ls


8、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件

[root@centos7~]# find /etc/init.d/ -perm -113
/etc/init.d/test

9. 实际生产环境可能使用到的案例:

如果需要对某一个目录批量设置权限,但是文件和目录的权限不一致时可以用find命令分别设定

这里给出一个循环递归得到对文件夹和文件分别有效的设置方法: 

[root@centos7~]#find /path -type f -exec chmod 644 {} \;    #对目录和子目录里的文件
[root@centos7~]#find /path -type d -exec chmod 755 {} \;  #对目录和子目录path  是路径  type 类型 d 是目录  f是 文件   exec  执



附:德·摩根定律

非(P 且Q) = (非P) 或(非Q)

非(P 或Q) = (非P) 且(非Q)


您可能感兴趣的文档:

--结束END--

本文标题: 文件搜索者--find命令详解

本文链接: https://www.lsjlt.com/news/37235.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 文件搜索者--find命令详解
    1. 文件查找:  在linux系统中由于文件的众多,往往需要在众多的文件当中查找某一个文件,如果时间一长,很难记得文件存放至何处,不过,这一点,你不比担心,因为开发人员为我们提供了强大的文件搜索...
    99+
    2022-10-18
  • Find命令搜索文件
    Find命令搜索文件 如果想查找最近某些时段修改或创建的文件、或者查找一些类型的文件,这时候单使用ls命令就不太可靠了,因此我们可以使用find命令来实现这样的功能。 find ./ -mtime 0...
    99+
    2023-09-02
    linux
  • find文件命令查找详解
    find命令详解    大家或多或少使用过windows的文件查找,针对整个文件系统、部分分区,以文件名、时间等条件来进行文件查找。在Linux中主要通过locate和find这两个命令...
    99+
    2022-10-18
  • Linux文件查询与搜索命令详解
    这篇文章主要讲解了“Linux文件查询与搜索命令详解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux文件查询与搜索命令详解”吧!1、命令 findfind 命令用于在目录结构中查找文...
    99+
    2023-06-16
  • 目录结构中搜索文件find命令怎么用
    这篇文章主要介绍了目录结构中搜索文件find命令怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。find命令用于在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多...
    99+
    2023-06-17
  • Linux上的文件搜索命令实例详解
    locate 基础了解 在centos7上默认没有locate命令,需要先手动安装。安装步骤:http://www.cnblogs.com/feanmy/p/7676717.html locate命令搜索的...
    99+
    2022-06-04
    详解 实例 命令
  • Centos文件搜索命令的详细介绍
    本篇内容介绍了“Centos文件搜索命令的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!locate--->文件查找事先生成的...
    99+
    2023-06-10
  • 详解Linux下find查找文件命令和grep查找文件命令
    目录一、find命令1.按文件名2.按文件类型查询3.按照文件大小查找4.按照文件日期查找4.1按照创建日期查找4.2按照修改日期查找4.3按照访问日期查找5.按深度查找5.1查找起始点以下n层的目录,不超过n层5.2搜...
    99+
    2022-06-05
    linux查找文件命令 linuxfind文件命令 linuxgrep命令
  • Linux中的搜索文件命令
    文件搜索命令locate:搜索快,新建文件无法搜索; 命令格式: locate 文件名 //在后台数据库中按文件名搜索,搜索速度快; /var/lib/mlocate : locate命令所搜索的后台数据...
    99+
    2022-06-04
    命令 文件 Linux
  • Linux文件搜索命令有哪些
    Linux中的文件搜索命令有:1.whereis命令,在特定目录中查找符合条件的文件;2.find命令,在指定目录下查找文件;3.locate命令,查找符合条件的文档;Linux中的文件搜索命令有以下几种whereis命...
    99+
    2022-10-04
  • Linux中文件搜索命令有什么用
    这篇文章将为大家详细讲解有关Linux中文件搜索命令有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。locate基础了解在centos7上默认没有locate命令,需要先手动安装。安装步骤:http...
    99+
    2023-06-09
  • Linux文本查找命令find的用法详解
    find 命令主要用于查找目录和文件,可以指定多种参数进行匹配。 用法:find  +查找路径  +命令参数   [输出形式] 查找路径:告诉find在哪查找 命令参数:指定要查找...
    99+
    2022-06-04
    linux find命令用法 linux文本查找命令find的用法详解
  • Linux中搜索文件命令的示例分析
    小编给大家分享一下Linux中搜索文件命令的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!文件搜索命令locate:搜索快,新建文件无法搜索;命令格式: ...
    99+
    2023-06-09
  • Linux中如何使用grep命令搜索文件名
    这篇文章将为大家详细讲解有关Linux中如何使用grep命令搜索文件名,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。从文件中搜索并显示文件名当你从不止一个的文件中搜索时,默认它将显示文件名:...
    99+
    2023-06-12
  • linux文件搜索及其它基础命令介绍(3)
    1、linux中包含大量的文件,对于文件查找,linux提供了find命令。 find是一个非常有效的工具,它可以遍历目标目录甚至整个文件系统来查找某些文件或目录: find [path...] [exp...
    99+
    2022-06-04
    及其它 命令 文件
  • scp 文件传输命令详解
    1. scp简介 scp(secure copy)是一个基于 SSH 协议在网络之间进行安全传输的命令,其格式为“scp [参数]本地文件 远程账户@远程 IP 地址:远程目录”。scp 不仅能够通过...
    99+
    2023-09-08
    linux 网络 服务器
  • 查看linux文件的命令详解
    怎么查看linux文件 查看文件内容的命令: cat 由第一行开始显示内容,并将所有内容输出 tac 从最后一行倒序显示内容,并将所有内容输出 more 根据窗口大小,一页一页的现实文件内容 less ...
    99+
    2022-06-04
    linux 查看文件
  • 详解Linux命令与文件查找
    一、执行文件名查找 which(查找‘执行文件')  //根据PATH环境变量所规范的路径查询 which [-a] command      &n...
    99+
    2022-06-04
    Linux命令与文件查找 linux查找文件命令 linux命令 linux查找文件
  • 【linux】tar指令压缩解压缩文件夹、文件命令详解
    1. tar常用命令: 压缩当前目录下文件夹/文件test到test.tar.gz: tar -zcvf test.tar.gz test 解压缩当前目录下的file.tar.gz到file: tar...
    99+
    2023-08-31
    linux 服务器 运维 压缩tar
  • 详解linux less命令查看大文件
    less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但...
    99+
    2022-06-04
    linux less 命令 linux 查看大文件
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作