Linux在文件中查找the字样,Linux文件查找
今天趁空复习了文件查找的相关知识,文件查找对我们来说是很有用的,当我们记不清楚我们把文件放到什么地方的时候,就可以轻松的找到了。这里就写下我学过的两个文件查找的命令,其中有一个是不常用,就简单说下,然后就重点写常使用的那个命令。
在Linux中文件查找主要有:locate,find这两个命令。先说说它们的区别吧:
locate:这个命令是非实时,非精确的查找,是依赖数据库查找的。
find:实时,精确的查找。速度可能有些慢。
简单说下locate命令吧!locate是依赖数据库查找的,上面我们已经说过了,这就意味着,如果没有这个数据库,那么我们就无法使用这个命令来进行查找了。而反之,数据库有了,但是没到更新时间的时候,我们的文件没了。那么在数据库中依然存有这条记录,我们依然可以用这个命令在数据库中查找到,但是却无法真正的找到这个文件,这就是这个命令的短处了。它的使用格式是:locate Keyword:命令加关键字就行了,另外,Linux系统会在默认的时间更新这个数据库,不过我们也可以手动更新,使用:updatedb这个命令就行了,这个命令就说到这吧!
下面是重头戏了,find命令,就是那个常用的命令了。Find命令不仅可以指定文件名进行查找,还可以根据指定路径、文件类型、文件大小、文件的更改时间。还能组合条件进行查找。查找出来的内容默认显示在屏幕上。
命令格式:find [dir1,…] [criteria,…] [action…]:dir:目录;criteria:标准(就是根据什么来查找,如姓名..);action:动作。
例如:#find /etc –name “passwd”:就是查找/etc目录下passwd的文件。
目录什么的没什么好说的,就来说说criteria:
依据文件的名字查找:
-name:依据文件名查找,并且严格区分大小写,并且是精确查找。而且支持globbing方式的文件名通配。例如:
#find /etc –name “passwd*” :查找/etc目录下passwd开头的文件;
-iname:不区分字母大小写,方法如-name;
-regex “PATTERN”:依据正则表达式查找;
依据文件的属主、属组查找:
-user:依据用户来查找,就是查找属于指定的用户的文件;例如:
#find /tmp –user redhat :查找/tmp目录下属于redhat用户的文件;
-group:依据用户组来查找,就是查找属于指定的用户组的文件;
-uid:依据用户UID来查找,也是查找指定的用户的文件,不过是指定用户的UID而已;例如:#find /var/tmp –uid 323 :查找/var/tmp目录下,与uid323对应的用户的所有文件;
-gid:依据用户组的GID来查找;
-nouser:查找所有没有属主的文件;
-nogroup:查找所有没有属组的文件;
依据文件的类型查找:
-type:依据文件的类型来查找文件:
f:普通文件;
d:目录文件;
l:链接文件;
b:块设备文件;
c:字符文件;
p:管道文件;
s:套接字文件;
例:#find /tmp –type s :查找/tmp目录下所有文件类型是套接字的文件。
依据文件大小查找:
-size:根据文件大小进行查找,默认单位是字节;
单位有k|M|G
例如:#find /tmp –size 10M :查找/tmp目录下,文件大小大于9M,小于等于10M的文件,为什么举这个例子呢?就是因为这点有些特殊。我们查找小于10M的文件和大于10M的文件的例子分别如下:#find /tmp –size -10M ;#find /tmp –size +10M。对,就是在10M前加个-号或+号来表示小于10M或大于10M的。
依据时间查找:
-atime:依据文件的访问时间来查找文件;
-mtime:依据文件的修改时间来查找文件;
-ctime:依据文件的改变时间来查找文件;
默认单位是天,例如:
#find /tmp –atime 3:查找/tmp目录下,正好距此时三天被访问过的文件;
#find /tmp –atime -3:查找/tmp目录下,在距此时三天内被访问过的文件;
#find /tmp –atime +3:查找/tmp目录下,在距此时三天前被访问过的文件,也就是距此时三天内没有被访问过的文件;
-amin、-mmin、-cmin :与-atime等一样,只不过默认时间是分钟,代换一下就知道这些命令的使用方法了。
依据文件的权限查找:
-perm:依据文件的权限来进行文件查找;例如:
#find /tmp 755 :查找/tmp目录下,所有权限位都满足的文件;
#find /tmp +755(/755) :查找/tmp目录下,任何一类用户某一个权限位符合条件的文件;
#find /tmp -755 :查找/tmp目录下,所有类别用户的所有权限位符合条件。
(注:-002: 这里的0表示不做检查)
Criteria说完了就来说说Action:
-print:显示信息,这是默认选项;
-ls:以长格式显示信息;
-ok:查找到文件以后,可以指定要执行的命令,会有提醒;
-exec:查找到文件以后,也可以指定要执行的命令,但不会有提醒;
-exec rm {} \; : -exec加要执行的命令加{} \;,这是使用格式。记住会用就行。
例如:#find /etc –size 10M –ls:查找/tmp目录下,大于9M小于等于10M的文件,并将其文件信息以长格式显示出来;
#find /tmp –nouser –exec rm {} \; :查找/tmp目录下,没有属主的文件,并将其删除;
最后说下find支持的组合条件:
-a:与 、-o:或 、-not:非 :其中,非优先级最高,与第二,或第三;默认是-a与关系。例如:
#find /tmp –name “*lc*” [-a] –user redhat:查找/tmp目录下,文件名中含有lc字符且属主是redhat的文件。
额,时间又不早了,就到这吧!我想写的应该能看懂吧!有些还有待完善,等明天有时间再来补充补充。呵呵。有错误提出来哈!睡觉咯!
Linux在文件中查找the字样,Linux文件查找相关推荐
- linux 检索全部文件中的中文词汇,linux – 获取所有文件中的单词计数
我有一个目录树,其中包含一堆文件夹和子文件夹,以及这些子文件夹中的一堆文件.我需要在每个文件中得到'Hello'字样的计数,并将结果显示为'File'a'has'Hello'n times','Fil ...
- linux中sed -i命令修改文件内容、在文件中插入行、删除文件中删除行
文章目录 0.sed -i与sed 1.修改文件内容 2.在文件中插入行 3.在文件中删除行 4.使用find查找文件,并用 | xargs传输文件名给sed命令 0.sed -i与sed sed - ...
- windows 查找目录下文件中包含某个字符的文件
一.可以使用windows自带的findstr来实现. 例子(1) findstr /s /i "string" . 上面的命令表示,当前目录以及当前目录的所有子目录下的所有文件中 ...
- assert文件夹 设置android_android使用build.xml配置assert文件中不压缩的类型文件
问题: 在做文本文件读取时,从assert文件中获取文件 getResources().getAssets().openFd("test.txt").getFileDescript ...
- cmd执行bat结果不回显_cmd - 如何在bat文件中调用另一个bat文件
情景一:两个bat文件在同一个目录下 有时候我们需要在一个bat文件中调用另一个bat文件,比如我们想在a.bat中调用b.bat,如下. a.bat @echo off echo I am a.ba ...
- C++ 在一个cpp文件中使用另一个cpp文件中定义的函数
C++ 在一个cpp文件中 使用另一个cpp文件中定义的函数 建立一个console项目 头文件 cpp文件 main.cpp 建立一个console项目 以dev为例,在[文件][新建][项目],新 ...
- 图片在xml文件中直接加载.9文件
图片在xml文件中直接加载.9文件,可能会因为图片压缩的缘故产生锯齿,如果使用 ImageView imageview = (ImageView) view .findViewById(R.id.in ...
- 转:intellij idea如何右键新建文件中添加jsp格式的文件【初学者适用】
转载:https://blog.csdn.net/weixin_43970743/article/details/84983066 版权声明:如果对您有所帮助,那就随手分享帮助更多人吧! https: ...
- cmd 如何在bat文件中调用另一个bat文件
微信搜索:"二十同学" 公众号,欢迎关注一条不一样的成长之路 情景一:两个bat文件在同一个目录下 有时候我们需要在一个bat文件中调用另一个bat文件,比如我们想在a.bat中调 ...
- python 在一个py文件中调用另一个py文件中的变量以及一个有趣的问题
python 在一个py文件中调用另一个py文件中的变量以及一个有趣的问题 1.在一个py文件中调用另一个py文件中的变量 新建一个py文件,记为t1.py # t1.py m = 2 n = 1 a ...
最新文章
- data.DataLoader 数据丢失 不能复用
- https ddos攻击——由于有了认证和加解密 后果更严重 看绿盟的产品目前对于https的ddos cc攻击需要基于内容做检测...
- python零基础入门教程学习要多久-廖雪峰python教程要学多久-零基础学Python需要多久...
- Win8总提示安装FLASH插件怎么办?
- JavaScript实现combine Without Repetitions不重复地结合算法(附完整源码)
- idea链接oracle数据库报错:[66000][12505] Listener refused the connection with the following error:
- 【Python环境搭建】PyCharm鼠标滚轮改变字体大小 等
- 树形结构的数据存储和数据库表设计
- js byte数组_这么骚的 js 代码,不怕被揍么
- 论文浅尝 | 基于知识图谱中图卷积神经网络的推荐系统
- 秒后面的单位是什么_为什么兰州马拉松很难跑出好成绩?
- php js鼠标滚动刷新,利用php和js实现页面数据刷新
- Raid技术精简总结
- mysql语句事务回滚_mysql语句,事务处理回滚的问题。
- 教你玩转HelloWorld
- 通过新建浏览器书签的方式给网页注入js代码
- Activiti 入门学习笔记
- MySQL数据库输入密码后闪退问题的解决方法
- 大华摄像头的踩坑之路
- DIV自动填满剩余空间
热门文章
- MySQL日期时间函数大全
- javascript获取css样式文件中定义的样式的方法
- Hololens中的虚拟物体通过Vuforia的码实现虚实融合打开hololens像机
- Processes and Threads 线程和进程的理解
- noteexpress如何不生成校对报告
- 181016扇贝有道词霸每日一句
- Atitit 项目管理之沟通管理概论问题管理 艾提拉著 跨语言沟通 群组沟通 书面沟通 目录 1. 沟通方式	2 1.1. 书面沟通 vs 当面沟通	2 1.2. 群组沟通(公开沟通) vs
- Atitit 互联网2018风口与趋势大盘点 目录 1.1. 短视频	1 1.2. 互联网金融	1 1.3. 区块链	1 1.4. 新零售	1 2. 2018热度榜丨你能抓住的风口有几个?.html
- atitit.安全的签名摘要 算法attilax总结
- paip.python错误解决2