每天学习一个命令:find 查找文件
查找的动作在平时使用的频率也还是很高的,所以知道并用好 find 这个命令也很重要。find 命令顾名思义,就是搜索特定文件夹内的文件。
基本使用
最基本的使用
find [path] [expression]
在 path 目录下查找 expression 的文件。
使用举例
通过文件名查找
find -name "query" # 搜索文件名,大小写敏感
find -iname "query" # 大小写不敏感
find -not -name "query" # 查找不包含关键字的文件
find \! -name "query" # 不包含
按照类型查找文件
find -type [fdlcb] "query"
type 后能够使用的类型有
f常规文件d目录l连接ccharacter devicesbblock devices
比如要查找系统中所有以 .conf 结尾的文件
find / -type f -name "*.conf"
通过文件大小查找
find /path/to/folder -size 50M
查找 50M 的文件,size 后能够使用的单位有:
b512byte blockscbyte 字节wtwo bytekkB 千字节MMBGGB
size 后面的参数可以使用 + 或者 - 或者不加来标识,超过,少于,或者正好。
find / -size +700M # 表示查找大于 700M 的文件
find / -size -50c # 表示查找小于 50 byte 的文件
find . -size 50M # 表示在当前目录查找正好 50M 的文件
通过时间来查找文件
Linux 会存储下面的时间:
- Access time 上一次文件读或者写的时间
- Modifica time 上一次文件被修改的时间
- Change time 上一次文件 inode meta 信息被修改的时间
在按照时间查找时,可以使用 -atime, -mtime 或者 -ctime ,和之前 size 参数一样可以使用 + 或者 - 来标识超多多长时间或者少于多长时间。
find / -mtime 1 # 寻找修改时间超过一天的文件
find / -atime -1 # 寻找在一天时间内被访问的文件
find / -ctime +3 # 寻找 meta 信息被修改的时间超过 3 天的文件
寻找修改时间超过 1 小时的 mp3 文件
find /path/to/folder -maxdepath 1 -mmin +60 -type f -name "*.mp3"
其中的-mmin n 参数表示的就是文件内容在前 n 分钟没有修改。
find /path/to/folder -maxdepath 1 -mmin +60 -type f -name "*.mp3" -exec rm -f {} \;
通过上面的语句就能够一次性删除超过 60 分钟未修改的 mp3 了。
通过 Owner 和权限搜索
使用 -user 和 -group 参数来通过拥有者搜寻
find / -user einverne
find / -group shadow
同样按着权限查找文件
find / -perm 644
find / -perm -644 # 查找权限至少是 644 的文件
限制查找的深度
使用 -maxdepth 来限制查找的深度,默认情况下 find 会一层层搜索,如果只想让 find 命令查找当前目录或者子目录,可以使用
find -maxdepth 2 -name "query"
同理 还有一个选项 -mindepth
find -mindepth 2 -maxdepth 3 -name "query"
对搜索结果批处理
在搜索出结果之后,可以使用如下的方式对搜索的结果执行一个命令
find [param] -exec command {} \;
比如批量修改权限
find . -type f -perm 644 -exec chmod 664 {} \;
find . -type d -perm 755 -exec chmod 700 {} \; # 批量修改文件夹权限
批量删除时间超过 1 天的文件
综合上面按时间查找文件和对搜索结果批处理,可以获知
find /path/to/folder/* -mtime +1 -exec rm {} \;
- find 后面接一个完整的 path
-mtime +1表示的查找时间超过 1 天的内容-exec后面表示对搜索的结果进行处理
使用 locate
locate 命令需要额外安装
sudo apt install mlocate
locate 命令维护了一份文件和目录的数据库,所以检索速度会快一些,数据库通常一天更新一次,可以手动更新数据库
sudo updatedb
locate -S # 查看当前数据库数据
locate 使用的方式和 find 大致差不多。
每天学习一个命令:find 查找文件的更多相关文章
- linux常用命令指南——查找文件我最强:find
2.3.2 查找文件我最强:find 2.3.2.1 find查找常用命令示例 find / -name 'wfy.txt' # 从根目录下开始查找文件wfy.txt find . -name '*f ...
- Linux命令: 查找文件中的字符串
①cat filename | grep 'string' ②编辑模式查找,/string, 依次敲入下面的命令 vim filename e i ESC /string 从光标位置开始往后查找第一个 ...
- 【Linux命令】命令行查找文件并进行操作
查找: #找./下的所有txt文件,输出个数 find ./ -name "*.txt" | wc -l #查找并删除 find ./ -name "*.txt" ...
- dos命令dir查找文件的用法及实例
功能:显示目录命令 格式:dir[盘符][路径][/W][/P][/L][/O:排序][/A:属性][/S] 参数介绍: /W -- 以宽行排列方式显示. /P -- 每显示满一屏停顿一下,待用户 ...
- Linux命令进阶篇-文件查看与查找
上一篇的博客对于Linux如何在不同目录下跳转和查看目录下内容做出了总结,主要靠cd和ls,很常见也很实用.但是你看到目录下面那么多不同花花绿绿的文件,心里是不是痒痒,是不是想进去一探究竟,有办法! ...
- Linux下which、whereis、locate、find 命令查找文件
转自:http://blog.csdn.net/gh320/article/details/17411743 我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索 ...
- Linux 查找文件
find 查找目录 -name "文件名"find / -name "php.ini"locate 文件名locate php.ini 一:locate命令 l ...
- [转帖]Linux查找文件6个高效工具
Linux查找文件6个高效工具 https://www.linuxrumen.com/rmxx/176.html 需要实操 -inname -type 等等. 1. 前言 我们使用Linux过程中,经 ...
- day12 查找文件
day12 查找文件 find命令:查找文件 find命令:在linux系统中,按照我们的要求去查询文件. 格式: find [查询的路径] [匹配模式] [匹配规则] 匹配模式: -name : 按 ...
随机推荐
- 自己总结的C#编码规范--1.命名约定篇
命名约定 我们在命名标识符时(包括参数,常量,变量),应使用单词的首字母大小写来区分一个标识符中的多个单词,如UserName. PascalCasing PascalCasing包含一到多个单词,每 ...
- react组件通信那些事儿
父组件是调用组件的组件.现在看来,感觉父组件就是一个壳子,定义好壳子里面会有什么,而子组件是一个具体的实现,说明,会用到什么东西,如果有这些东西,会进行什么操作.总之,父组件是材料,有水和泥,子组件告 ...
- jquery实时获取时间
$(document).ready(function(){ function time(){ var date=new Date(); var h=date.getHours(); var m=dat ...
- 一道颇有难度的JavaScript题
上次分享了一道题,大家反响不错,很开心自己写的东西有人愿意花时间去看,也给了自己莫大的鼓舞,其实做题虽然不比真正的编程,但是也能够让你发现一些你之前没有注意到的语言层面的问题.所以,这次再分享一道稍微 ...
- 2017-9-8-WLW尝试
666 main () { int abc int def } #include<stdio.h> int main() { printf("hello world!\n&quo ...
- [蓝点ZigBee] Zstack 之按键驱动以及控制LED灯 ZigBee/CC2530 视频资料
这一节主要演示如何在Zstack 下根据板子的不同修改按键驱动,实际演示的时候代码跳动比较多,建议大家除了看视频资料以外,还需要在网上找一下相关资料进一步学习. 视频总览:http://bphero. ...
- [BZOJ3038]遥远的国度
Description: 给定一棵树,每次询问u节点在以v为根时的子树权值最大值 Hint: \(n \le 10^5\) Solution: 这个模型还是很重要的 考虑树剖 以1节点为根建树 当\( ...
- BZOJ4218 : 不知道高到哪里去了
设$degi[x]$和$dego[x]$分别表示每个点的入度和出度,将线性规划的限制写出来: 目标函数: $\max.\ \sum_{x=1}^n(dego[x]P[x]-degi[x]Q[x])$ ...
- BZOJ3070 : [Pa2011]Prime prime power 质数的质数次方
对于$a^b$,如果$b=2$,那么在$[\sqrt{n},\sqrt{n}+k\log k]$内必定能找到$k$个质数作为$a$. 筛出$n^{\frac{1}{4}}$内的所有质数,暴力枚举所有落 ...
- python系统编程(一)
进程的创建-fork 1. 进程 VS 程序 编写完毕的代码,在没有运行的时候,称之为程序 正在运行着的代码,就成为进程 进程,除了包含代码以外,还有需要运行的环境等,所以和程序是有区别的 2. fo ...