原标题:【收藏】linux快速查找文件的技巧

谢谢打开这篇文章的每个你

···设为星标

有时候,我们需要在系统中查找文件,Linux有一个非常优秀的搜寻系统。

一般提到搜寻文件的时候,很多人第一反应是find命令,但其实find不是常用的,因为速度慢,而且毁硬盘。一般我们都先用whereis/locate来查找,找不到了会用find找,前两个命令是利用数据库来搜寻数据,没有实际的搜寻硬盘,所以效率比较高。

which

which 可以根据[PATH]这个环境变量所规范的路径,去搜寻执行档,which的局限性比较高,只能用来搜寻执行档。

whereis

whereis 用来寻找特定文件

-b:只查找binary文件

-m:只找在说明文件manual路径下的文件

-s:只找source来源文件

-u:没有说明档的文件

linux系统会将系统内的所有档案都记录在一个数据库文档里,当使用whereis或者是locate时,都会以此数据库文档为准,所以,有时候当使用这两个命令时,会找到一些已被删除的文件,而且有时候也找不到最新的文件。

linux每天会针对linxu主机上所有文件的所在进行搜寻数据库的更新,更新的程序就是updatedb。

locate

locate是一个使用方法非常简单的命令,当我们使用locatefilename进行搜索的时候,只要在完整文件名(包含路径名)中包含filename,就会被显示出来。

find

find是一个非常有效的工具,它可以遍历当前目录甚至整个文件系统来查找某些文件或者目录。

find命令的一般形式为:

find pathname –options [-print –exec -ok]

pathname:查找的目录路径,比如用.表示当前目录,用/表示系统根目录。

-print:将匹配的文件输出到标准输出。

-exec:对匹配的文件执行该参数所给出的shell命令 exec后跟随要执行的命令,然后是一对{},一个空格和一个,然后是一个;。当你使用这一个选项查找文件并删除之前,强烈建议先用ls查看一下,再执行。例如find . –type f –exec ls–l {} ;

-ok:与-exec作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。当我们需要执行mv或者rm的命令时,可以用ok,这样可以对每个匹配到的文件进行操作之前提示你,并让你确认是否确认操作。find . –name “*.log” –mtime+5 –ok rm {} ;

find命令的选项或表达式

-name:按照文件名查找文件 find . –name xxx

-perm:按照文件权限来查找文件 find . –perm 755

-prune:可以使find命令不在当前指定的目录中查找,如果同时使用了-depth选项,那么-prune选项将会被find命令忽略

-user:按照文件属主来查找文件。

-group:按照文件所属的组来查找文件

-mtime –n +n:按照文件的更改时间来查找,-n表示文件更改时间距现在n天内,+n表示更改时间距现在n天以前。类似的还有-atime和-ctime find / -mtime -5

-nogroup:查找五有效所属组的文件,即该文件所属的组在/etc/groups中不存在

-nouser:查找无有效属主的文件,该文件的属主在/etc/passwd中不存在

-newer file1 ! file2:查找更改时间比文件file1新单比文件file2旧的文件

-type:查找某种特定类型的文件,比如

b – 块设备文件

d – 目录

c – 字符设备文件

p – 管道文件

l – 符号链接文件

f – 普通文件

-size n[c]:查找文件长度为n块的文件,带有c时表示文件长度以字节计算

-depth:首先查找当前目录中的文件,然后再在其子目录中查找

-fstype:查找位与某一类型文件系统中的文件,这些文件系统类型通常可以在/etc/fstab中找到

-mount:查找文件时不跨越文件系统mount点

-follow:如果find命令遇到符号链接文件,就跟踪到链接所指向的文件

-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中

xargs

最后我们再看一个命令,在用find的-exec选项处理匹配到的文件时,会将所有匹配到的文件一起传递给exec执行,但有些系统会对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,会出现溢出错误,错误信息一般是“参数列太长”或“参数列溢出”。这时候我们需要使用xargs,xargs每次只获取一部分文件而不是全部,它会先处理最先获取的一部分文件,然后是下一批,如此往复。

例如在整个系统中查找内存信息转储文件,然后把结果保存到另一个文件中:

find . –name “core” –print | xargs echo “” > /tmp/core.log

责任编辑:

linux文件太多了如何快速搜索,【收藏】linux快速查找文件的技巧相关推荐

  1. linux下C/C++编译时系统搜索 include 和 链接库 文件路径的指定

    C/C++程序在linux下被编译和连接时,GCC/G++会查找系统默认的include和link的路径,以及自己在编译命令中指定的路径.自己指定的路径就不说了,这里说明一下系统自动搜索的路径. [1 ...

  2. win11怎么去除快速搜索 Windows11去除快速搜索的步骤方法

    Win11的操作系统桌面下方的任务栏中有一个快速搜索的按钮,这个快速搜索可以帮助用户进行快速的搜索,但是显得比较不美观,对于追求美观的用户是一件特别难受的事情,那有没有什么办法可以把快速搜索给去除,下 ...

  3. 比Everything更强的文件搜索工具,支持文件名、文件内容和文件图片上的文字搜索,文件内容搜索工具,文件图片内容搜索工具,OCR图片文本识别搜索,文件快速搜索工具,文字识别文件搜索工具

    Windows自带的文件搜索功能想必不需要过多吐槽,搜索速度简直是在龟爬,所以小编很早之前就在用Everything进行文件搜索了,不过,今天的主角不是它,而是比它更更更更更强的一款软件! 这款软件适 ...

  4. python编译exe文件太大了_python编译windows下可执行的exe文件

    python编译windows下可执行的exe文件的操作流程: 1.在安装python环境的windows下,安装 pyinstaller,请在dos下执行如下命令: pip install pyin ...

  5. 安卓手机管理器_电脑文件快速搜索有everything,那手机呢?

    对于那些经常使用电脑和办公的人来说,肯定免不了查找文件,电脑自带的文件搜索根本满足不了需求,因为文件实在太多了,所以第三方文件搜索工具everything就诞生了,并且成为了win10必备的软件,ev ...

  6. gorm preload 搜索_文件太多忘记了文件放在什么地方?那你可以试试这款文件搜索工具...

    忘记了文件放在什么地方?文件太多不能一下子找到?那么你也许可以试试这款软件--ProFind for mac版,这是一款适用于macOS系统的文件搜索工具,它具有强大的功能和出色的性能,可为macOS ...

  7. linux j查找文件位置,Linux下的文件查找命令——find

    Linux下几个常见的文件查找命令: which       查看可执行文件的位置 whereis    寻找特定文件,查看文件的位置 locate       配合数据库查看文件位置 find    ...

  8. 2019-8-20 [Linux] 6.Shell的基本操作 查看 改变 列出 阅读开头/结尾 循环查看 阅读工具less 查找文件内容 文本分析工具AWK 文本编辑工具SED文件find 帮助man

    文章目录 6.linuxShell的基本操作 6.1 查看目录和文件 6.1.1 显示当前目录:pwd 6.1.2 改变目录:cd 6.1.3 列出目录内容:ls 1) 查看列表信息 以及详细信息 2 ...

  9. 专业地攻击:优秀黑客的Linux基础,part 4(查找文件)

    2019独角兽企业重金招聘Python工程师标准>>> 我之所以写这一些列的文章是应为很多人在使用Linux的时候都有不解的地方.作为一个黑客,Linux技能是无可替代的攻击利器. ...

  10. Linux查找文件命令find .

    find   /    -name   文件名称 [root@localhost ~]# find   /   -name   *.conf /sbin/generate-modprobe.conf ...

最新文章

  1. 各种抠图动态图片_学习抠取动物毛发图片的PS抠图技巧
  2. This Android SDK requires An... ADT to the late...
  3. 数据库实例:用户登录
  4. stixel提升思路总结
  5. (转)Spring Boot(八):RabbitMQ 详解
  6. 为什么京东买手机不支持白条?
  7. 剑指offer面试题68 - I. 二叉搜索树的最近公共祖先(递归)(二叉搜索树)
  8. jquery检测input变化_检测jQuery中的输入变化?
  9. hbase启动后HMaster进程自动关闭
  10. Linux宝库的八多和八少
  11. 相位和群时延的ADS仿真
  12. Java类、对象和实例的理解
  13. Markdown快捷键
  14. Ubuntu18中添加中文输入法
  15. Sphinx使用说明
  16. 群晖nas安装php,在群晖NAS上运行URLOS之后竟然能安装Discuz! Q!!
  17. 怎么在手机上取消双重认证_用手机在淘宝上怎么开网店?流程步骤详解
  18. 计算机xp系统怎么录音,XP系统电脑怎么录音? - KK录像机
  19. 写给30岁以下年轻人的话,人生的感悟,不是鸡汤,愿你们的人生少走弯路。
  20. 类静态数据成员的定义及初始化

热门文章

  1. OPENCV相关读书笔记
  2. 输入hbase shell报错:ERROR [main] zookeeper.RecoverableZooKeeper:ZooKeeper exists failed after 4 attempts
  3. php短地址重定向怎么获取地址参数,PHP还原短网址原链接 获取短网址跳转的原地址 获取301重定向原页面地址函数...
  4. 【收藏好文】一文读懂射线与三角形相交算法Moller-Trumbore算法
  5. 崩溃!公司再无“带薪拉屎”,我们该怎样维护自己的权益?
  6. 红蓝对抗之隧道技术第二篇(reGeorg内网穿透、SSH隧道本地Socks代理、SSH远程转发、Earthworm Socks5代理、Tunna正向代理、ICMP隧道、DNS隧道、Frp穿透)
  7. Android中如何监听手机电话状态
  8. 硬件测试所需的5个流程,一个都不能少!
  9. C/C++ 1e-6
  10. android:高德地图点标记与取消标记