文章

文件查找

文件查找

1. which 命令

用于查找可执行文件的位置,它会在环境变量PATH指定的路径中搜索。

1
which [命令名称]

例如:

1
which ls

2. whereis 命令

用于查找二进制文件、源代码和手册页的位置。

1
whereis [文件名]

例如:

1
whereis vim

3. locate 命令

通过搜索一个更新过的数据库来查找文件。这个数据库通常通过updatedb命令来更新。

1
locate [文件名]

例如:

1
locate hosts

更新locate数据库:

1
updatedb

4. find 命令

是一个功能强大的工具,可以根据各种条件来查找文件,包括文件名、大小、类型、权限、所有者、组、日期等。

1
find [路径] [选项] [表达式] [动作]
  • 按文件名查找:
    1
    2
    3
    
    find /etc -name "hosts"
    find /etc -iname "hosts" # 忽略大小写
    find /etc -iname "hos*" # 使用通配符
    
  • 按文件大小查找:
    1
    2
    3
    
    find /etc -size +5M # 大于5M的文件
    find /etc -size 5M # 等于5M的文件
    find /etc -size -5M # 小于5M的文件
    
  • 指定查找的目录深度:
    1
    
    find / -maxdepth 4 -a -name "readmeifcfg*"
    
  • 按文件属主、属组查找:
    1
    2
    
    find /home -user jack # 属主是jack的文件
    find /home -group hr # 属组是hr组的文件
    
  • 按文件类型查找:
    1
    2
    
    find /tmp -type f # 普通文件
    find /dev -type b # 块设备文件
    
  • 按文件权限查找:
    1
    
    find . -perm 644 -ls # 精确权限
    
  • 找到后的处理动作:
    1
    2
    3
    4
    
    find . -perm 715 -print # 打印文件名
    find . -perm 715 -ls # 打印文件属性
    find /etc -name "775*" -delete # 删除文件
    find /etc -name "hosts*" -ok cp -rvf {} /tmp \; # 复制文件
    
本文由作者按照 CC BY 4.0 进行授权