返回顶部
首页 > 资讯 > 操作系统 >Linux 系统的下文件查找
  • 189
分享到

Linux 系统的下文件查找

2024-04-02 19:04:59 189人浏览 安东尼
摘要

linux 系统下文件查找1、which(1)作用:用于查找并显示给定命令的绝对路径(2)语法:which(选项)(参数)(3)案例:[root@localhost ~]# which cd &n

linux 系统下文件查找

1、which

(1)作用:用于查找并显示给定命令的绝对路径

(2)语法:which(选项)(参数)

(3)案例:

[root@localhost ~]# which cd       #查找cd命令的路径

/usr/bin/cd

[root@localhost ~]# which cp       #查找cp命令的路径

alias cp='cp -i'

            /usr/bin/cp

2、whereis

(1)作用:来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
(2)语法:whereis(选项)(参数)

(3)案例:

[root@dayi123 ~]# whereis passwd

passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz

[root@dayi123 ~]# whereis shutdown

shutdown: /usr/sbin/shutdown /usr/share/man/man8/shutdown.8.gz

3、locate

(1)作用:查找文件或目录

(2)查找原理:根据系统上预建的文件索引数据库查找文件,依赖于事先构建的索引,索引的构建是在系统较为空闲时自动进行(周期性任务)或管理员手动更新数据库(updatedb),索引构建过程需要遍历整个根文件系统,极消耗资源

(3)工作特点:查找速度快、模糊查找、非实时查找、搜索的是文件的全路径,不仅仅是文件名、可能只搜索用户具备读取和执行权限的目录

(4)语法:locate (选项)(参数)

      参数:-i 执行区分大小写的搜索

-n N只列举前N个匹配项目

(5)案例:

[root@dayi123 ~]# locate install.log    #查找install.log文件

/root/install.log

/root/install.log.syslog

 [root@dayi123 ~]# locate -n 6 *.sh    #查找.sh结尾的文件,只显示前6个

/etc/acpi/actions/power.sh

/etc/bash_completion.d/gdbus-bash-completion.sh

/etc/dhcp/dhclient.d/ntp.sh

/etc/profile.d/colorls.sh

/etc/profile.d/glib2.sh

/etc/profile.d/lang.sh

(6)更新数据库:updatedb

locate对新建的文件查找不到,需要跟新数据库后才能查找

[root@dayi123 ~]# touch dayi123.html

[root@dayi123 ~]# locate dayi123.html   #查找不到新建的文件

[root@dayi123 ~]# updatedb                      #更新数据库

[root@dayi123 ~]# locate dayi123.html   #更新数据库后才能正常查找新建文件

/root/dayi123.html

4、find

(1)作用:实时查找工具,通过遍历指定路径完成文件查找

(2)语法:find [OPTION]... [查找路径] [查找条件] [处理动作]

查找路径:指定具体目标路径;默认为当前目录

查找条件:指定的查找标准,可以文件名、大小、类型、

权限等标准进行;默认为找出指定路径下的所有文件

处理动作:对符合条件的文件做操作,默认输出至屏幕

(3)查找条件:

1)根据文件名和inode查找:

条件:-name "文件名称":支持使用*, ?, [], [^]

-iname "文件名称":不区分字母大小写

-inum n 按inode号查找

-samefile name 相同inode号的文件

-links n 链接数为n的文件

-regex "PATTERN":以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称

[root@dayi123 ~]# find . -name dayi123.html #当前目录下查找文件名为dayi123.html文件

./dayi123.html

 [root@dayi123 ~]# find . -inum 140370    #当前目录下查找inode号为140370的文件

./1.txt

[root@dayi123 ~]# find . -links 2           #当前目录下查找链接数为2的文件

./dayi123

./.ssh

2)根据属主、属组查找:

条件:-user USERNAME:查找属主为指定用户(UID)的文件

-group GRPNAME: 查找属组为指定组(GID)的文件

-uid UserID:查找属主为指定的UID号的文件

-gid GroupID:查找属组为指定的GID号的文件

-nouser:查找没有属主的文件

-nogroup:查找没有属组的文件

[root@dayi123 ~]# find /home/ -user dayi123   #查找属主为dayi123的文件

/home/dayi123

/home/dayi123/.bashrc

/home/dayi123/.bash_profile

/home/dayi123/.bash_loGout

/var/spool/mail/dayi123

[root@dayi123 ~]# find /home/ -group hehe   #查找属组为hehe的文件

/home/hehe

/home/hehe/.bashrc

/home/hehe/.bash_profile

/home/hehe/.bash_logout

[root@dayi123 ~]# userdel hehe

[root@dayi123 ~]# find ./ -nourser

find: unknown predicate `-nourser'

[root@dayi123 ~]# find ./ -nouser           #查找没有属组的文件

./hehe.log

3)根据文件类型查找:

条件:-type TYPE:

f: 普通文件

d: 目录文件

l: 符号链接文件

s:套接字文件

b: 块设备文件

c: 字符设备文件

p: 管道文件

[root@dayi123 ~]# find . -type f     #查找当前目录下的文件     

./.bashrc

./1.txt

./.viminfo

./.bash_profile

./dayi123.html

./install.log

……

 [root@dayi123 ~]# find /bin/ -type f   #查找/bin/目录下的链接文件

/bin/taskset

/bin/ipcalc

/bin/gunzip

/bin/uname

……

4)根据文件大小来查找:

条件:-size [+|-]#UNIT

常用单位:k, M, G

[root@dayi123 ~]# find /etc/sysconfig/ -size +5k  #查找/etc/sysconfig/下大于5k的文件

/etc/sysconfig/sysstat.ioconf

/etc/sysconfig/network-scripts/ifup-eth

……

 [root@dayi123 ~]# find /etc/sysconfig/ -size -4k#查找/etc/sysconfig/下小于4k的文件

/etc/sysconfig/grub

/etc/sysconfig/ntpdate

/etc/sysconfig/readahead

……

5)根据时间查找(根据时间戳):

以“天”为单位;

-atime [+|-]#, 文件访问时间

-mtime [+|-]#, 文件修改时间

-ctime [+|-]#, 更改文件属性时间

以“分钟”为单位:

-amin

-mmin

-cmin

[root@dayi123 ~]# find /home/ -mtime +9   #查找9天前修改过文件内容的文件    

/home/dayi123/.bashrc

/home/dayi123/.bash_profile

/home/dayi123/.bash_logout

[root@dayi123 ~]# find /etc/sysconfig/ -mtime -7  #查找7天内修改过文件内容的文件

/etc/sysconfig/

/etc/sysconfig/grub

/etc/sysconfig/keyboard

/etc/sysconfig/cbq

/etc/sysconfig/i18n

[root@dayi123 ~]# find /etc/sysconfig/ -mtime 6  #今天起往前第6天修改过内容的文件

/etc/selinux/targeted/modules/active/modules/firewallgui.pp

/etc/selinux/targeted/modules/active/modules/inn.pp

6)根据权限查找:

条件:-perm [/|-]MODE

MODE: 精确权限匹配

/|+MODE:任何一类(u,g,o)对象的权限中只要能一位匹配即可,或关系,Centos6位+,centos7为/

-MODE:每一类对象都必须同时拥有指定权限,与关系

用法说明:

find -perm 755 会匹配权限模式恰好是755的文件

只要当任意人有写权限时,find -perm +|/222就会匹配

只有当每个人都有写权限时,find -perm -222才会匹配

只有当其它人(other)有写权限时,find -perm -002才会匹配

[root@dayi123 ~]# find ./ -perm 755  #匹配权限恰好是755的文件

./dayi123.txt

./dayi.txt

./hahl

[root@dayi123 ~]# find ./ -perm -222  #匹配所有用户都有写权限的文件

./test

[root@dayi123 ~]# find ./ -perm /222  #匹配任意人都有写权限的文件

./.bash_logout

./.bash_profile

./.bashrc

./.cshrc

./.tcshrc

./anaconda-ks.cfg

    7)组合条件

组合条件:与:-a

或:-o

非:-not, !

v 德·摩根定律:

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

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

[root@dayi123 ~]# find ./ -user dayi -not -group dayi

#查找属主是dayi且属组不是dayi的文件

./dayi.txt

[root@dayi123 ~]# find -not \( -user dayi -o -user dayi123 \)

#查找属主不是dayi或属主不是dayi123的文件         

.

./.bash_logout

./.bash_profile

./.bashrc

./.cshrc

./.tcshrc

(4)处理动作:

1)-print:默认的处理动作,显示至屏幕;

[root@dayi123 ~]# find ./ -name dayi.txt -print

./dayi.txt

2)-ls:类似于对查找到的文件执行“ls -l”命令

[root@dayi123 ~]# find ./ -name dayi.txt -ls

68002599    4 -rwxr-xr-x   1 dayi     dayi123        22 Mar 31 15:56 ./dayi.txt

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

[root@dayi123 ~]# find ./ -name dayi.txt –delete

4)-fls file:查找到的所有文件的长格式信息保存至指定文件中

[root@dayi123 ~]# find ./ -name dayi123.txt -fls dayi123.log

[root@dayi123 ~]# cat dayi123.log

68002562    4 -rwxr-xr-x   1 root     root           17 Mar 31 13:22 ./dayi123.txt

5)-ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令;

对于每个文件执行命令之前,都会交互式要求用户确认

[root@dayi123 ~]# find ./ -name dayi123.log -ok ls -l {} \;

< ls ... ./dayi123.log > ? y

-rw-r--r--. 1 root root 83 Apr  7 18:36 ./dayi123.log

6)-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令

{}: 用于引用查找到的文件名称自身

[root@dayi123 ~]# find ./ -name dayi123.log -exec ls -l {} \; 

-rw-r--r--. 1 root root 83 Apr  7 18:36 ./dayi123.log

7)有些命令不能接受过多参数,此时命令执行可能会失败,可用find | xargs COMMAND方式规避此问题

[root@dayi123 ~]# find /var/ -type f | xargs ls -l

-rw-r--r--.   1 root root 64 Mar 29 06:49 /var/lib/yum/yumdb/d/1d144f3e96982fed47c4e94fde884e48172b8c3b-dbus-glib-0.100-7.el7-x86_64/checksum_data

-rw-r--r--. 322 root root  6 Mar 29 06:49 /var/lib/yum/yumdb/d/1d144f3e96982fed47c4e94fde884e48172b8c3b-dbus-glib-0.100-7.el7-x86_64/checksum_type

(5)find综合案例

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

[root@dayi123 ~]# find /var/ -user root -a -group mail

/var/spool/mail

/var/spool/MQueue

/var/dayi

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

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

/usr/share/polkit-1/rules.d

[root@dayi123 ~]# find /usr -not -user root -a -not -user lp -a -not -user gdm

/usr/share/polkit-1/rules.d

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

[root@dayi123 ~]# find /etc -mtime -7 -a -not -user root -a -not -user postfix

[root@dayi123 ~]# find /etc/ -mtime -7 -a -not \( -user root -o -user postfix \)

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

[root@dayi123 ~]# find /etc/ -size +1M -a -type f

/etc/udev/hwdb.bin

/etc/selinux/targeted/contexts/files/file_contexts.bin

/etc/selinux/targeted/policy/policy.29

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

[root@dayi123 ~]# find /etc -not -perm -111

34676121   12 -rw-r--r--   1 root     root         8940 Apr  5 19:43 /etc/selinux/targeted/modules/active/modules/authconfig.pp

34769376   12 -rw-r--r--   1 root     root         8234 Apr  5 19:43 /etc/selinux/targeted/modules/active/modules/jockey.pp

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

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

33766578  196 -r--r--r--   1 root     root       198453 Mar 29 06:44 /etc/pki/ca-trust/extracted/java/cacerts

67271661  352 -r--r--r--   1 root     root       359773 Mar 29 06:44 /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt

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

[root@localhost ~]# find /etc/init.d/ -perm -111 -a -perm -002

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

--结束END--

本文标题: Linux 系统的下文件查找

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

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

猜你喜欢
  • Linux 系统的下文件查找
    Linux 系统下文件查找1、which(1)作用:用于查找并显示给定命令的绝对路径(2)语法:which(选项)(参数)(3)案例:[root@localhost ~]# which cd &n...
    99+
    2024-04-02
  • linux系统中怎么查找文件
    今天给大家介绍一下linux系统中怎么查找文件。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。Linux系统中查找文件有两个方法:第一种方法是就是使用find命...
    99+
    2023-06-28
  • 查找linux系统中大文件的方法
    http://blog.csdn.net/bobo0915/article/details/51980650 可以用下面的命令查找到系统中哪一个文件夹有问题然后逐层查看就可以找到是哪一个文件了 ...
    99+
    2024-04-02
  • Linux系统快速查找文件的方法
    本篇内容介绍了“Linux系统快速查找文件的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Linux常用命令中,有些命令可以帮助我们查找...
    99+
    2023-06-05
  • 怎么在Linux系统中查找文件
    本篇文章为大家展示了怎么在Linux系统中查找文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。linux查找文件1.1 find命令Linux find 命令是所有 Linux 命令中最有用的一个...
    99+
    2023-06-16
  • linux系统下查找文件whereis命令怎么用
    这篇文章给大家分享的是有关linux系统下查找文件whereis命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。指令名称:whereis功能介绍:在特定目录中查找符合条件的文件。这些文...
    99+
    2023-06-10
  • Linux系统中怎么查找出大文件
    本篇文章给大家分享的是有关Linux系统中怎么查找出大文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。du -s /home/* | sort -nr也可以用find,查找大...
    99+
    2023-06-13
  • Linux系统中怎么查找指定文件
    这篇文章主要讲解了“Linux系统中怎么查找指定文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux系统中怎么查找指定文件”吧!-name 必须用到的选项。表明要求系统按照文件名查找...
    99+
    2023-06-10
  • Linux系统怎么查找可执行文件
    这篇文章跟大家分析一下“Linux系统怎么查找可执行文件”。内容详细易懂,对“Linux系统怎么查找可执行文件”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“Linux系统怎么查找...
    99+
    2023-06-28
  • 在Linux系统下怎么查找可移植可执行文件
    这篇文章主要介绍“在Linux系统下怎么查找可移植可执行文件”,在日常操作中,相信很多人在在Linux系统下怎么查找可移植可执行文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在Linux系统下怎么查找可移...
    99+
    2023-06-13
  • Linux系统中怎么使用mlocate查找文件
    这期内容当中小编将会给大家带来有关Linux系统中怎么使用mlocate查找文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Linux系统中一切皆为文件,一个系统可能存在数十万个文件。那么如何快速的查找...
    99+
    2023-06-28
  • Linux系统怎样查找大文件或目录
    这篇文章给大家介绍Linux系统怎样查找大文件或目录,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、查找大文件方法:那么如何把这些大文件搜索出来呢?例如我要搜索当前目录下,超过800M大小的文件find . -typ...
    99+
    2023-06-28
  • Linux系统如何精准查找文件位置
    这篇文章将为大家详细讲解有关Linux系统如何精准查找文件位置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Linux系统最大的一个特点就是一切皆为文件,那么这么多的文件怎样在Linux系统...
    99+
    2023-06-28
  • Linux文件查找
    Linux文件查找详解  我们之前学过的grep、egrep以及fgrep命令是Linux的文本查找命令,只是单纯地匹配字符串的命令,而不是文件查找命令。·文件查找的常用命令 ...
    99+
    2024-04-02
  • Linux系统查找大文件的命令是什么呢
    今天就跟大家聊聊有关Linux系统查找大文件的命令是什么呢,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Linux系统中一切皆为文件,其中有很多的大文件,那么如何在Linux系统总查...
    99+
    2023-06-28
  • Linux系统查找文件位置的命令是什么
    今天给大家介绍一下Linux系统查找文件位置的命令是什么。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。Linux系统中一切皆为文件,如果忘记某个文件该怎么办?...
    99+
    2023-06-28
  • 详解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系统中怎么批量查找文件与文件内容
    这篇文章主要讲解了“linux系统中怎么批量查找文件与文件内容”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux系统中怎么批量查找文件与文件内容”吧!比如查找当前目录下面所有的php文...
    99+
    2023-06-10
  • Linux下如何查看文件系统类型
    这篇文章将为大家详细讲解有关Linux下如何查看文件系统类型,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux 支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs...
    99+
    2023-06-27
  • Linux下怎么查看文件系统类型
    小编给大家分享一下Linux下怎么查看文件系统类型,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、df -T 命令查看这个是最简单的命令,文件系统类型在Type列输出。只可以查看已经挂载的分区和文件系统类型。如下所示:[...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作