Linux教程之查找文件(find,ls,locate,whereis,which)

查找文件(find,ls,locate,whereis,which)

针对 ubuntu20.04
ubuntu 20.04 是 “西柚云” 主要使用的操作系统 西柚云官网

文件的属性有:文件的大小(size),文件的名称(name),文件的类型(type),文件的路径(path),文件的修改日期(modify_time)……可以根据文件的属性,在系统中查找符合筛选条件的文件。

  • ls 可以列出指定路径下的文件信息,配合 grep 可以通过文件名筛选文件

    # 筛选路径 /etc/apt 目录下文件名中包含 list 的文件,这里的 “| grep list” 的原理可以先不管 
    ls /etc/apt | grep list
    
  • find 命令可以对几乎所有的文件属性进行筛选,在 linux 系统中 * 可以匹配路径中的任意字符
    这里只列举几个常用的例子,更多的文件属性筛选可以查看文档:https://wangchujiang.com/linux-command/c/find.html

    # 列出 /tmp 目录下的所有文件和目录
    find /tmp
    # 列出 /etc/apt 目录下文件或目录名以 list 或 d 结尾的文件
    find /etc/apt "*.list -o *.d"
    # 在前一条命令的基础上筛选文件类型为“文件”的
    find /etc/apt "*.list -o *.d" -type f
    # 筛选文件类型为“目录”
    find /etc/apt "*.list -o *.d" -type d
    # 默认会搜索路径下的所有子目录,通过 maxdepth 可以让它只搜索当前搜索到第 1 层子目录就不再继续往下搜索了
    find /etc/apt "*.list -o *.d" -maxdepth 1 -type f
    
  • locate 命令来自于 mlocate 软件,需要使用命令 apt install mlocate安装,其用于快速定位软件的位置,支持正则表达式。

    # 找到系统中 python 文件的位置
    locate *.py
    # 列出系统中所有的文件名以 .R 结尾的文件
    locate *.R
    
  • whereis 命令用来定位系统中二进制文件的位置

    # 定位系统 R 可执行程序的位置
    whereis R
    # 定位系统中 python 可执行程序的位置
    whereis python
    
  • which 命令用来查找命令的绝对路径。这在系统中安装了多个版本的软件时十分实用。如在 conda 环境中通常安装了多个 python 环境,可以使用这种方式定位到当前使用 python 命令使用的是哪个路径下的 python。

    # 查看执行 python 命令时,使用的是哪个路径下的程序
    which python
    # 查看执行 R 命令时,使用的是哪个路径下的程序
    which R
    

扩展内容:

# 删除修改时间超过 1 天的文件(保留最近 24 小时的文件)
find . -type f -mtime 1 -exec  rm -rf {} \;

# 筛选当前目录下大于 10MB 的文件
find . -size +10M
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值