Linux常用命令 - find命令基础使用(重点)
21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!!
https://www.cnblogs.com/poloyy/category/1672457.html
首先,先造一点数据
mkdir -p ~/test/cool
touch ~/test/cool/test{..}.txt
touch ~/test/cool/{1..3}.sh
chmod 777 *.sh
history > test.txt
ls >> test1.txt
ls >> test1.txt

最基础的打印操作
find ~/test
知识点
- -print 是默认就有的,不写也可以,而 -print 默认是以 \n 来分隔找到的文件
- 如果不想换行打印,可以考虑空格分隔,加上 -print0 即可
find ~/test -print0
执行结果

通过文件名搜索
- -name:仅可以对文件的file_name匹配
- -path:可以对文件的dir_name、file_name匹配
查找的文件名最好使用引号包围,可以配合通配符进行查找
查找~/test下的.txt文件
find ~/test -name "*.txt"
在~/test下查找cool文件夹下的.txt文件
find ~/test -path "/*cool*/*.txt"
倘若,我们通过-name来执行会是怎么样的呢?是会报错的
因为 -name 是不能使用 / 的,除非文件名包含了 / , 因为 -name 只能匹配 file_name (即文件名),并不匹配 dir_name (即目录名)
所以想要在指定目录(~/test)下搜索某目录中(/cool)的某文件(.txt),应该使用-path而不是-name

通过文件的类型来搜索
在~/test目录下查找所有的目录
find ~/test -type d
在~/test目录下查找所有的文件
find ~/test -type f
还有其他不常用的文件类型
- b:块设备
- c:字符设备
- p:管道
- l:符号链接
通过文件的时间来搜索
在~/test目录下查找修改时间在5日以内的文件
find ~/test -mtime -
在~/test目录下查找修改时间在3日以前的.txt文件
find ~/test -type f -name "*.txt" -mtime +
在~/test目录下查找更改时间在5分钟以内的.txt文件
find ~/test -type f -name "*.txt" -mmin -
在~/test目录下查找修改时间在10分钟以前的文件
find ~/test -mmin +
注意点
- Linux的文件有三种时间类型,具体可看此文章:https://www.cnblogs.com/poloyy/p/12586677.html
- 无论是 -mtime + 还是 -mtime - ,第五天内修改过的文件都不会被搜索出来,可看下图

通过文件的大小来搜索
语法格式
-size n[cwbkMG]
那么它有什么类型大小单位呢?(官方直接给了答案)
b:512字节的块(默认),1b = 512c
c:bytes,指定字节大小
w:等价于两个bytes,1w=2c,一般用户匹配中文
k:平时常说的1kb,1k=1024c=2b
M:1MB,1M=1024k=2048b
G:1GB,1GB=1024MB=2048*1024b
在~/test目录下查找所有size=0字节的文件
find ~/test -size
在~/test目录下查找所有size<100k的文件
find ~/test -size -100k
在~/test目录下查找所有size>1MB的文件
find ~/test -size +1M
通过编程中的“与、或、非”来搜索
- -a:与,即&&(默认都是与)
- -o:或:即||
- -not:非,即条件结果取反
在~/test目录下查找文件大小在1kb和10kb内的所有文件
find ~/test -size +1k -size -10k
find ~/test -size +1k -a -size -10k
在~/test目录下查找大于1kb或类型为普通文件的文件
find ~/test -size +1k -o -type f
在~/test目录下查找非空文件
find ~/test -not -size
在~/test目录下查找文件或目录
find ~/test -type f -o -type d

搜索空文件
find ~/test -empty -type f
通过文件所属用户搜索
find ~/test -user root
通过文件所属组group搜索
find ~/test -group root
Linux常用命令 - find命令基础使用(重点)的更多相关文章
- ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘
本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...
- Linux 常用的压缩命令有 gzip 和 zip
Linux 常用的压缩命令有 gzip 和 zip,两种压缩包的结尾不同:zip 压缩的后文件是 *.zip ,而 gzip 压缩后的文件 *.gz 相应的解压缩命令则是 gunzip 和 unzip ...
- linux常用60条命令 转
Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命 ...
- linux常用的一些命令(不断增加中)
linux 下重启 apache: httpd -k restart 下面这些大多命令都可以在<鸟哥私房菜>的服务器中的“常用网络指令”和基础中的“程序与资源管理”中找到ps -aux 这 ...
- 入门学习Linux常用必会命令实例详解
Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统, ...
- 网络编程学习笔记-linux常用的网络命令
网络参数设置命令 所有时刻如果你想要做好自己的网络参数设置,包括IP参数.路由参数和无线网络等,就得要了解下面这些相关的命令才行.其中Route及ip这两条命令是比较重要的.当然,比较早期的用法,我们 ...
- LINUX常用配置及命令
一. Fedora系统配置 1. [设置网卡IP] 步骤如下: 1) 用root用户登陆,打开/etc/sysconfig/network-scripts/ifcfg-eth0文 ...
- Java线上问题排查思路及Linux常用问题分析命令学习
前言 之前线上有过一两次OOM的问题,但是每次定位问题都有点手足无措的感觉,刚好利用星期天,以测试环境为模版来学习一下Linux常用的几个排查问题的命令. 也可以帮助自己在以后的工作中快速的排查线上问 ...
- linux常用20条命令
1.cd命令 这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径.如: cd /root/Docements # 切换到 ...
- linux常用配置文件和命令总结
常用配置文件说明: 1..设置-n永远生效:Vim的配置文件:命令模式想永久生效, ~/.vimrc,新建文件,在里面输入保存即可 2.设置别名永远生效:在~/.bashrc 修改当前用户家目录里的 ...
随机推荐
- FPGA小白学习之路(4)PLL中的locked信号解析(转)
ALTPLL中的areset,locked的使用 转自:http://www.360doc.com/content/13/0509/20/9072830_284220258.shtml 今天对PLL中 ...
- VueX状态管理器 的应用
VueX状态管理器 cnpm i vuex axios -S 1 创建Vuex 仓库 import Vue from 'vue' import Vuex from 'vuex' vue.use(Vue ...
- Python - 超好用的第三方库pathlib,快速获取项目中各种路径
前言 之前曾介绍过Python的os库详细使用方式,具体可看看这篇博文:https://www.cnblogs.com/poloyy/p/12341231.html 博主在学完os库之后,就开始投入使 ...
- safari坑之 video
博客地址: https://www.seyana.life/post/19 本来是打算给博客左上角的gif做个优化, 把gif换成webm,以video的形式自动播放,能从180k降到50k, 现在浏 ...
- vue+django+webpack搭建
一.前言 最近接手了一个项目,后端是django,前端是django自带的模板,用的是jinja2,写了一段时间发现用起来特别不顺手,于是想在保持现有的模板基础上,引入vue框架,这样同事可以继续用自 ...
- eslint常用三种校验语句
1.关闭对整段代码的校验 /* eslint-disable */ code /* eslint-enable */ 2.关闭当前行代码的校验 line code // eslint-disable- ...
- React hooks详解
此篇文章仅是对hooks入门的总结,老鸟略过吧~ React从16.8.X以后增加了一个新特性,react hooks 让我们看看这个新特性又带来了哪些惊喜呢~以下内容我们采取不同方式创建组件来进行对 ...
- table 上下左右 4根线的写法 :before :after 他们就能把td里面右下的那颗线给盖上 还有body和header横向滚动的联动 || 不能把body套在header上是为了上header表头固定 || 还有表头header的右侧overflow-y 是否出现滚动条的位置 记得有一个$nextTick 要不然会获取不到高度 高度就为0了 || 横向滚动条纵向滚动条
table 上下左右 4根线的写法 <!--* @description 重点查核人员表!--><template> <div class="keyChecke ...
- webStorm -> Version Control _> Repository -> Filter By User 查看svn日志
webStorm -> Version Control _> Repository -> Filter By User 查看svn日志
- JDK中线程池参详细解析
在jdk中为我们提供了三种创建线程池的方式,但是在阿里的编码规范里面都是明确禁止使用这三种api去创建线程池,推荐我们去自定义线程池.为什么? 要回答为什么,我们需要明白创建线程池时,各参数的作用: ...