Linux中的find命令


一,命令介绍

Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果没有写目录,则默认为当前目录下查找。

二,命令详解

基本语法

find [path] [expression]

path:指定搜索目录

expression:将要执行的文件

常用选项:

  • -name:按照文件名搜索。
    • 例如:find / -name "*.txt" 搜索根目录下所有扩展名为 .txt 的文件。
  • -type:指定文件类型。
    • 例如:find / -type d 搜索所有目录。
  • -user:按照文件所有者搜索。
    • 例如:find / -user john 搜索用户 john 拥有的所有文件。
  • -group:按照文件所属组搜索。
    • 例如:find / -group staff 搜索属于 staff 组的所有文件。
  • -mtime:按照文件内容上次修改时间搜索,单位为天。
    • 例如:find / -mtime 7 搜索过去 7 天内修改过的文件。
  • -ctime:按照文件状态信息上次修改时间搜索。
  • -atime:按照文件上次访问时间搜索。
  • -size:按照文件大小搜索,可以指定 +n(大于 n)、-n(小于 n)、n(等于 n),其中 n 以 1KB 为单位。
    • 例如:find / -size +100M 搜索大于 100MB 的文件。

操作符:

  • -o:逻辑或操作。
    • 例如:find / -name "*.sh" -o -name "*.txt" 搜索所有扩展名为 .sh.txt 的文件。
  • -not!:逻辑非操作。
    • 例如:find / ! -name "*.log" 搜索所有除了扩展名为 .log 的文件。

动作:

  • -exec:对找到的每个文件执行命令。
    • 例如:find / -type f -exec ls -l {} \; 对每个找到的文件执行 ls -l 命令。
  • -print:打印找到的文件名(默认动作,通常不需要显式指定)。
  • -delete:删除找到的文件。

组合使用:

  • 可以组合多个选项和操作符来定义复杂的搜索条件。

示例:

  • 搜索当前目录及子目录下所有 .txt 文件:
    find . -name "*.txt"
    
  • 搜索 /home 目录下所有用户 john 的文件,并列出详细信息:
    find /home -user john -exec ls -l {} \;
    
  • 搜索 /var 目录下过去 30 天内未被访问过的文件:
    find /var -atime +30
    
  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
find命令Linux系统一个非常常用的命令,该命令可以查找文件和目录,并根据不同的条件进行过滤。其基本语法格式如下: ```shell find [path] [option] [expression] ``` 其,path表示要查找的路径,可以是相对路径或绝对路径;option表示查找时的一些选项,可以用来指定查找深度、时间、权限等条件;expression表示要查找的条件,可以是文件名、文件类型、文件大小等。 下面介绍几个常用的find命令选项和表达式: 1. -name:根据文件名进行查找。 ```shell find /home -name "test.txt" # 在/home下查找文件名为test.txt的文件 ``` 2. -type:根据文件类型进行查找。 ```shell find /home -type f # 在/home下查找普通文件 find /home -type d # 在/home下查找目录 ``` 3. -mtime:根据文件修改时间进行查找。 ```shell find /home -mtime +7 # 查找/home目录下7天前修改的文件 find /home -mtime -7 # 查找/home目录下7天内修改的文件 ``` 4. -size:根据文件大小进行查找。 ```shell find /home -size +1M # 查找/home目录下大小大于1MB的文件 find /home -size -1M # 查找/home目录下大小小于1MB的文件 ``` 5. -user:根据文件所有者进行查找。 ```shell find /home -user alice # 查找/home目录下所有者为alice的文件 ``` 6. -perm:根据文件权限进行查找。 ```shell find /home -perm 644 # 查找/home目录下权限为644的文件 ``` 7. -exec:对查找到的文件进行操作。 ```shell find /home -name "test.txt" -exec rm {} \; # 查找/home目录下名为test.txt的文件并删除 ``` 以上仅是find命令的一些常用选项和表达式,实际使用还可以根据具体需求进行更多的定制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值