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
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值