今天趁空复习了文件查找的相关知识,文件查找对我们来说是很有用的,当我们记不清楚我们把文件放到什么地方的时候,就可以轻松的找到了。这里就写下我学过的两个文件查找的命令,其中有一个是不常用,就简单说下,然后就重点写常使用的那个命令。

在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文件查找相关推荐

  1. linux 检索全部文件中的中文词汇,linux – 获取所有文件中的单词计数

    我有一个目录树,其中包含一堆文件夹和子文件夹,以及这些子文件夹中的一堆文件.我需要在每个文件中得到'Hello'字样的计数,并将结果显示为'File'a'has'Hello'n times','Fil ...

  2. linux中sed -i命令修改文件内容、在文件中插入行、删除文件中删除行

    文章目录 0.sed -i与sed 1.修改文件内容 2.在文件中插入行 3.在文件中删除行 4.使用find查找文件,并用 | xargs传输文件名给sed命令 0.sed -i与sed sed - ...

  3. windows 查找目录下文件中包含某个字符的文件

    一.可以使用windows自带的findstr来实现. 例子(1) findstr /s /i "string" . 上面的命令表示,当前目录以及当前目录的所有子目录下的所有文件中 ...

  4. assert文件夹 设置android_android使用build.xml配置assert文件中不压缩的类型文件

    问题: 在做文本文件读取时,从assert文件中获取文件 getResources().getAssets().openFd("test.txt").getFileDescript ...

  5. cmd执行bat结果不回显_cmd - 如何在bat文件中调用另一个bat文件

    情景一:两个bat文件在同一个目录下 有时候我们需要在一个bat文件中调用另一个bat文件,比如我们想在a.bat中调用b.bat,如下. a.bat @echo off echo I am a.ba ...

  6. C++ 在一个cpp文件中使用另一个cpp文件中定义的函数

    C++ 在一个cpp文件中 使用另一个cpp文件中定义的函数 建立一个console项目 头文件 cpp文件 main.cpp 建立一个console项目 以dev为例,在[文件][新建][项目],新 ...

  7. 图片在xml文件中直接加载.9文件

    图片在xml文件中直接加载.9文件,可能会因为图片压缩的缘故产生锯齿,如果使用 ImageView imageview = (ImageView) view .findViewById(R.id.in ...

  8. 转:intellij idea如何右键新建文件中添加jsp格式的文件【初学者适用】

    转载:https://blog.csdn.net/weixin_43970743/article/details/84983066 版权声明:如果对您有所帮助,那就随手分享帮助更多人吧! https: ...

  9. cmd 如何在bat文件中调用另一个bat文件

    微信搜索:"二十同学" 公众号,欢迎关注一条不一样的成长之路 情景一:两个bat文件在同一个目录下 有时候我们需要在一个bat文件中调用另一个bat文件,比如我们想在a.bat中调 ...

  10. python 在一个py文件中调用另一个py文件中的变量以及一个有趣的问题

    python 在一个py文件中调用另一个py文件中的变量以及一个有趣的问题 1.在一个py文件中调用另一个py文件中的变量 新建一个py文件,记为t1.py # t1.py m = 2 n = 1 a ...

最新文章

  1. data.DataLoader 数据丢失 不能复用
  2. https ddos攻击——由于有了认证和加解密 后果更严重 看绿盟的产品目前对于https的ddos cc攻击需要基于内容做检测...
  3. python零基础入门教程学习要多久-廖雪峰python教程要学多久-零基础学Python需要多久...
  4. Win8总提示安装FLASH插件怎么办?
  5. JavaScript实现combine Without Repetitions不重复地结合算法(附完整源码)
  6. idea链接oracle数据库报错:[66000][12505] Listener refused the connection with the following error:
  7. 【Python环境搭建】PyCharm鼠标滚轮改变字体大小 等
  8. 树形结构的数据存储和数据库表设计
  9. js byte数组_这么骚的 js 代码,不怕被揍么
  10. 论文浅尝 | 基于知识图谱中图卷积神经网络的推荐系统
  11. 秒后面的单位是什么_为什么兰州马拉松很难跑出好成绩?
  12. php js鼠标滚动刷新,利用php和js实现页面数据刷新
  13. Raid技术精简总结
  14. mysql语句事务回滚_mysql语句,事务处理回滚的问题。
  15. 教你玩转HelloWorld
  16. 通过新建浏览器书签的方式给网页注入js代码
  17. Activiti 入门学习笔记
  18. MySQL数据库输入密码后闪退问题的解决方法
  19. 大华摄像头的踩坑之路
  20. DIV自动填满剩余空间

热门文章

  1. MySQL日期时间函数大全
  2. javascript获取css样式文件中定义的样式的方法
  3. Hololens中的虚拟物体通过Vuforia的码实现虚实融合打开hololens像机
  4. Processes and Threads 线程和进程的理解
  5. noteexpress如何不生成校对报告
  6. 181016扇贝有道词霸每日一句
  7. Atitit 项目管理之沟通管理概论问题管理 艾提拉著 跨语言沟通 群组沟通 书面沟通 目录 1. 沟通方式 2 1.1. 书面沟通 vs 当面沟通 2 1.2. 群组沟通(公开沟通) vs
  8. Atitit 互联网2018风口与趋势大盘点 目录 1.1. 短视频 1 1.2. 互联网金融 1 1.3. 区块链 1 1.4. 新零售 1 2. 2018热度榜丨你能抓住的风口有几个?.html
  9. atitit.安全的签名摘要 算法attilax总结
  10. paip.python错误解决2