Linux-文件查找

13 篇文章 1 订阅

Linux下的常用查找命令

  • locate
  • whereis
  • which
  • find

locate
-i, 忽略大小写
这里写图片描述

find
根据文件名或正则表达式搜索
-name
这里写图片描述
条件限制
-a 与条件
-o 或条件
-not 非条件(此参数的功能类似于否定参数‘!’)

find -name "t*" -a -name "*.text"  //查找以t开头并且以.text结尾的文件
find -name "t*" -o -name "*.text"  //查找以t开头或以.text结尾的文件
find -not -name "t*" -o -name "*.text"  //查找不以t开头或以.text结尾的文件

这里写图片描述
设定find命令在子目录中遍历的深度参数:
-maxdepth
-mindepth
根据文件类型搜索

类型符号
普通文件f
符号文件l
目录d
字符设备c
块设备b
套接字s
管道文件p
find -type l  //查找此目录及子目录以下的所有符号文件
find -type f  //普通文件

根据文件时间进行查找:
linux文件系统中的每个文件都有三种时间戳:
1. 访问时间(atime——access time):就是上次访问这个文件的时间。
2. 改变时间(ctime——change time):就是文件的inode改变的时间(什么是inode?)当你往一个文件中添加数据或者删除数据的时候,修改文件所有者的时候,链接改变的时候,文件的ctime就会发生改变。
3. 修改时间(mtime——modification time):就是文件的内容上一次发生改变的时候的时间。

find -type f -atime -7   #查找7天内被访问的文件
find -type f -atime  7   #查找恰好在7天前被访问的文件
find -type f -atime +7   #查找超过7天没被访问的文件

-atime,-ctime,-mtime可作为find的时间参数,单位是天。还有基于“分钟”的,-amin,-mmin
-cmin。这些值通常还带有+或-:+表示大于,-表示小于。
-newer参数,我们可以指定一个用于比较时间戳的参考文件,然后找出比参考文件更新的所有文件。
这里写图片描述

find -type f -newer test4  //查找当前目录及子目录下比test4更新的文件

基于文件大小的查找
-size参数
这里写图片描述

find -type f -size +45  //查找文件大小比45大的普通文件
find -type f -size  45  //查找文件大小为45的普通文件
find -type f -size -45  //查找文件大小比45小的普通文件

基于文件权限和文件所有人的查找
-perm
-user
这里写图片描述

find -type f -perm 664   //查找权限为664的普通文件
find -type f -user lee   //查找所有人为lee的普通文件

结合find执行命令或动作
-exec

find -type f -name "*.c" -exec cat> file.txt \;  #将所有.c文件拼接起来写入单个文件file.txt中
find -type f -mtime +10 -name "*.text" -exec cp /5_15   #将10天前的.text文件复制到/tmp下

find与xargs结合使用
xargs参数 将标准输入转换成命令行参数
这里写图片描述

find -type f -name "*.txt" -print0 |xargs  -0 rm -f   #将匹配到的文件删除,xargs -0将 \0作为输入定界符。
find -type f -name "*.c" -print0 | xargs  -0 -l     #统计所有c程序文件的行数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值