Linux下命令find命令文件查找


前言

find命令是Linux系统中的一个常用命令,用于在指定的目录中查找符合条件的文件或目录。


一、find 命令使用介绍

find 命令是 Linux 和 Unix 系统中常用的文件查找工具。它可以在指定目录及其子目录中查找符合指定条件的文件或目录,并将结果输出到终端。find 命令的语法如下:

find [path] [expression]

其中:

  • path:查找的起始目录,可以是绝对路径或相对路径。如果不指定 path,则默认从当前目录开始查找。

  • expression:用来指定查找的条件,可以是一些简单的逻辑运算符(如 \-name, \-type, \-size, \-mtime, \-user, \-group 等),也可以是一些复杂的文件名匹配模式(如通配符 \*?\[ \] 等)。

  • \-name:指定文件名模式,如 \*.txt 表示查找所有以 .txt 结尾的文件。

  • \-type:指定文件类型,如 \-type f 表示查找所有文件,\-type d 表示查找所有目录。

  • \-size:指定文件大小范围,如 \-size +10M 表示查找所有大小大于 10M 的文件。

  • \-mtime:指定文件修改时间范围,如 \-mtime -7 表示查找所有最近 7 天内修改过的文件。

  • \-user:指定文件所有者,如 \-user haoze表示查找所有所有者为 haoze 的文件。

  • \-group:指定文件所属组,如 \-group example 表示查找所有所属组为 example 的文件。

以下是一些示例:

.代表的是相对路径当前目录,相对路径与绝对的路径的区别可以理解为在 Linux中凡是以/开头的目录均为绝对路径

  • 查找当前目录及其子目录中所有以 .txt 结尾的文件:
    find . -name "*.txt"
  • 查找当前目录及其子目录中所有文件大小大于 1M 的文件:
    find . -type f -size +1M
  • 查找当前目录及其子目录中所有修改时间在最近 7 天内的文件:
   find . -type f -mtime -7
  • 查找当前目录及其子目录中所有所属组为 example 的文件:
    find . -group example

以上为 find 命令的基本用法,还有很多高级用法可以查阅官方文档了解。

二、Linux文件权限4位数含义

  • 普通权限:
    image

RWX对应的权限是: r:4 w:2 x:1, 所以777就代表 rwxrwxrwx

    [root@server /]# ls -l | head -5
    total 32
    lrwxrwxrwx.   1 root root    7 Jul  2 14:51 bin -> usr/bin
    #777权限
    dr-xr-xr-x.   5 root root 4096 Jul  2 14:53 boot
    #555权限
    drwxr-xr-x   20 root root 3240 Aug  9 16:08 dev
    #755权限
    drwxr-xr-x.  77 root root 8192 Aug  9 16:08 etc
    #755权限
  • 高级权限 suid,sgid,sticky

0777最前面的0,代表高级权限suid,sgid,sticky分为属主权限、属组权限、其他人权限
suid:0变为4、guid:0变为2、sticky:0变为1
suid, sgid和sticky是Linux系统中用于限制文件和目录的用户和组的三种权限。

  1. suid权限

suid权限是指文件或目录可以使其他用户以执行命令的方式来使用它们。当文件具有suid权限时,文件的所有者可以将文件或目录赋予其他用户,这些用户可以以root用户的身份来执行该文件或目录。

suid权限可以通过在文件上运行chmod +s命令来设置。例如,下面的命令将file.txt文件设置为具有suid权限:

    [root@mysql5_7 ~]# ls -l file.txt
    -rw-r--r-- 1 root root 0 Aug  9 20:33 file.txt #初始权限
    [root@mysql5_7 ~]# chmod u+s file.txt
    [root@mysql5_7 ~]# ll file.txt
    -rwSr--r-- 1 root root 0 Aug  9 20:33 file.txt #可以看到多了个s权限 
    [root@mysql5_7 ~]# chmod u-s file.txt #取消权限
  1. sgid权限

sgid权限是指文件或目录的所有者和组可以使用它们。如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件

sgid权限可以通过在文件上运行chmod +s命令来设置。例如,下面的命令将file.txt文件设置为具有sgid权限:

    [root@mysql5_7 ~]# chmod g+s file.txt
    [root@mysql5_7 ~]# ll file.txt
    -rw-r-Sr-- 1 root root 0 Aug  9 20:33 file.txt
    [root@mysql5_7 ~]# chmod g-s file.txt
  1. sticky权限

sticky权限是指只有文件或目录的拥有者和组用户才能进行写操作。当文件或目录具有sticky权限时,只有文件或目录的拥有者和组用户才能在文件或目录上进行写操作。其他用户可以读取和执行该文件或目录,但无法进行写操作。 设置该位后, 就算用户对目录具有写权限,也不能删除该文件。

sticky权限可以通过在文件上运行chmod +t命令来设置。例如,下面的命令将file.txt文件设置为具有sticky权限:

    [root@mysql5_7 ~]# chmod o+t file.txt
    [root@mysql5_7 ~]# ll file.txt
    -rw-r--r-T 1 root root 0 Aug  9 20:33 file.txt
    [root@mysql5_7 ~]# chmod o-t file.txt

总结

本文介绍了Linux系统中常用的find命令的使用介绍以及高级用法,同时解释了Linux文件权限4位数的含义,包括普通权限、高级权限suidsgidsticky,以及如何设置它们。find命令可以在指定目录及其子目录中查找符合指定条件的文件或目录,并将结果输出到终端。通过对命令语法和常用示例的介绍,可以更好地了解和运用find命令。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清醒云思

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值