Linux文件管理知识查找文件
Linux文件管理知识:查找文件
前几篇文章一一介绍了LINUX进程管理控制命令及网络层面的知识体系,综所周知,一个linux系统是由很多文件组成的,那么既然有那么多文件,那我们该如何管理这些文件呢?
Linux中的所有数据都是以文件形式存在的,那么所有文件分别被归类到不同的文件系统中。而文件系统则是一种树型结构,通俗的理解为目录。
在linux系统中,你所做的每一步操作及所执行的每个命令都是基于文件系统底层逻辑来呈现出来的。

说到管理linux文件,首先您得先找见它!通过本节可以了解linux的文件管理第一步:查找文件等。今天这篇文章主要介绍下两个用来在linux系统中查找文件的工具或者命令程序。
• locate –通过名称来查找文件
• find – 在一个目录层次结构中搜索文件
locate - 查找文件的简单方法
locate 命令程序会执行一次快速的路径名数据库搜索进程,并且输出结果是与给定字符串相匹配的路径名称。locate 命令程序只能依据文件名来查找文件。
例如,找到所有名字以“zip”开头的文件:
[root@linuxprobe ~]$ locate bin/zip
locate 命令程序执行搜索路径名数据库进程,并输出任一个包含字符串“bin/zip”的路径名:
/usr/bin/zip
/usr/bin/zipgrep
/usr/bin/zipinfo
/usr/bin/zipsplit
或者结合其它命令工具,例如grep 命令,来执行更全面的搜索:
[root@linuxprobe ~]$ locate zip | grep bin
/bin/bunzip2
/bin/bzip2
/bin/gunzip
/bin/gzip
/usr/bin/funzip
/usr/bin/gpg-zip
/usr/bin/prezip
/usr/bin/prezip-bin
/usr/bin/unzip
/usr/bin/zip
/usr/bin/zipgrep
/usr/bin/zipinfo
/usr/bin/zipsplit
扩展知识:
有时候locate命令程序不能正常工作,但是呢第二天它就正常工作了。解决方法:首先转换为超级用户身份,在提示符下运行updatedb 命令,可以手动运行updatedb 命令程序即可。
目前,不同版本的Linux发行版中locate 命令程序有很多演变,不过它们都会拥有一定重叠的选项集合,可通过查看locate 命令的手册来确定安装了哪个版本的locate 命令程序。
find - 查找文件的高阶之路
find 命令程序支持基于给定的各种属性搜索查找文件。find 命令程序的魅力所在就是它能够找到符合特定标准属性的文件。
- 最简单的查找方式:
find 命令程序支持接收多个目录名来执行搜索查找。
例如:
[root@linuxprobe ~]$ find ~ //输出家目录的路径名列表
可想而知,查找结果会产生很大的列表。那我们可以尝试使用wc 命令程序来计算并显示出文件的数量:
[root@linuxprobe ~]$ find ~ | wc
-l46052
find 命令程序支持的常见文件类型测试条件如下:
表: find 文件类型
|
文件类型 |
描述 |
|
b |
块特殊设备文件 |
|
c |
字符特殊设备文件 |
|
d |
目录 |
|
f |
普通文件 |
|
l |
符号链接 |
- 通过文件大小和文件名搜索查找
例如:
查找所有文件名匹配通配符模式“*.JPG”和文件大小大于1M 的普通文件:
[root@linuxprobe ~]$ find ~ -type f -name "*.JPG" -size +1M | wc -l
237
//引入-name 测试条件,后面跟通配符模式。
//双引号引起来的作用就是阻止shell 展开路径名进程。
//引入-size 测试条件,后跟字符串“+1M”。加号“+”代表正在寻找文件大小大于指定数的文件。若以减号“-”开头,那就代表查找小于指定数的文件。若没有符号意味着“精确匹配这个数”。字母“M”表明测量单位是兆字节。测量单位的指定如下表:
表: find 大小单位
|
字符 |
单位 |
|
b |
512 个字节块。如果没有指定单位,则这是默认值。 |
|
c |
字节 |
|
w |
两个字节的字 |
|
k |
千字节(1024 个字节单位) |
|
M |
兆字节(1048576 个字节单位) |
|
G |
千兆字节(1073741824 个字节单位) |
以上列出的只是冰山一角,find 命令手册有更详细的说明。
总结:
find 命令程序搜索目录树以查找一个文件或一组文件。它遍历目录树并报告与用户规范匹配的文件的所有匹配项。查找程序包括非常强大的搜索功能。
locate 程序扫描一个或多个文件名数据库,并显示任何匹配项。如果文件在上次文件名数据库更新期间存在,则可以将其用作非常快速的查找命令。
当然,linux文件类型是不可或缺的一部分,在Linux中,基本的文件类型有以下三种:
1) 普通文件
普通文件基本包括文本文件、源码文件、可执行文件等。
2) 目录
目录可以包含普通文件和特殊文件,目录相当于Windows系统和Mac 系统中的文件夹。
3) 设备文件
设备文件就是Linux 与外部设备(如光驱,打印机等)进行通信所必需的文件。
关于linux系统文件查找命令的运用魅力不止如此,今天的介绍仅仅一小部分,所以强烈建议大家可以参考下《GNU Findutils 4.9.0》及《linux就该这么学》这两本书,对于linux系统文件管理层面的介绍很详细!
Linux文件管理知识查找文件的更多相关文章
- Linux按照时间查找文件
linux按照时间查找文件 需要用到一个根据最后修改时间来处理的脚本. 前面有个有关find的基本用法,根据文件大小,类型什么的,这个是关于时间的. linux 文件的三种时间(以 find 为例) ...
- 3种方法来在Linux电脑上查找文件
如果你不太了解Linux命令,那么在Linux系统里查找文件是比较困难的.只要使用多种不同的终端命令,可以很快地找到文件.Linux命令比其它操作系统的搜索功能更加强大,掌握这些命令就能你完全控制这些 ...
- Linux系统下查找文件的方法
Linux系统下查找文件的方法 作者:Vashon 时间:20150419 方法一.在当前目录里查找所有名为以 java 开头的文件: find ./ -name "java*" ...
- Linux基础知识之文件的权限(一)
Linux基础知识之文件权限(一) Linux优点之一就是它拥有多用户多任务的环境,在提供文件共享的同时也能保证用户文件的安全性.所以,设置文件的权限管理变得尤为重要. 权限讲解 [der@Der ~ ...
- Linux如何搜索查找文件里面内容
在Linux系统当中,如何搜.索查找文件里面的内容呢? 这个应该是系统维护.管理当中遇到最常见的需求.那么下面介绍,总结一下如何搜索.查找文件当中的内容. 搜索.查找文件当中的内容,一般最常用的是gr ...
- Linux里如何查找文件内容
Linux查找文件内容的常用命令方法. 从文件内容查找匹配指定字符串的行: $ grep "被查找的字符串" 文件名例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件g ...
- Linux里如何查找文件内容 (转)
Linux查找文件内容的常用命令方法. 从文件内容查找匹配指定字符串的行: $ grep "被查找的字符串" 文件名例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件g ...
- Linux下相关查找文件命令(find locate which whereis type)
以下内容摘自:http://blog.csdn.net/jessica1201/article/details/8139249 标注的内容为自己的补充: 我们经常需要在系统中查找一个文件,那么在lin ...
- 【转】Linux里如何查找文件内容
原文网址:http://blog.chinaunix.net/uid-25266990-id-199887.html Linux查找文件内容的常用命令方法. 从文件内容查找匹配指定字符串的行: $ g ...
- linux grep find查找文件夹、代码中的某行/字符串
本文转载于:https://blog.csdn.net/Mr_Cat123/article/details/80541658 在Linux中,由于文件很多,代码很长,可能我们只知道其中的一两个字符串, ...
随机推荐
- 集线程池应用、多次HttpWebRequest请求,自动切换账号等等的移动信息查询软件
具体内容就不说了,只是自己留着未来好找而已 主窗体: using System; using System.Collections.Generic; using System.ComponentMod ...
- 2022-07-24:以下go语言代码输出什么?A:[]int{};B:[]int(nil);C:panic;D:编译错误。 package main import ( “fmt“ ) f
2022-07-24:以下go语言代码输出什么?A:[]int{}:B:[]int(nil):C:panic:D:编译错误. package main import ( "fmt" ...
- 2020-03-02:在无序数组中,如何求第K小的数?
2020-03-02:在无序数组中,如何求第K小的数? 福哥答案2021-03-02: 1.堆排序.时间复杂度:O(N*lgK).有代码. 2.单边快排.时间复杂度:O(N).有代码. 3.bfprt ...
- 【GiraKoo】Java Native Interface(JNI)的空间(引用)管理
Java Native Interface(JNI)的空间(引用)管理 Java是通过垃圾回收机制回收内存,C/C++是通过malloc,free,new,delete手动管理空间.那么在JNI层,同 ...
- 文心一言 VS 讯飞星火 VS chatgpt (24)-- 算法导论4.2 6题
六.用Strassen 算法作为子进程来进行一个 knn 矩阵和一个nkn 矩阵相乘,最快需要花费多长时间?对两个输入矩阵规模互换的情况,回答相同的问题. 文心一言: Strassen 算法是一种用于 ...
- cookie和session以及token
cookie和seesion以及token 技术都基于状态保持, cookie: 有服务器生成, 以 k:v 形式保持在浏览器端,下次请求服务器,附带cookie信息:存在恶意修改可能:可以对co ...
- logging 模块因权限问题写入日志失败
哈喽大家好,我是咸鱼 今天跟大家分享一个使用 Python 的 logging 模块写入日志文件时遇到的权限问题,不知道你们有没有遇到过 1.案例现象 今天上班的时候手机短信收到了 zabbix 告警 ...
- Kotlin协程-那些理不清乱不明的关系
Kotlin的协程自推出以来,受到了越来越多Android开发者的追捧.另一方面由于它庞大的API,也将相当一部分开发者拒之门外.本篇试图从协程的几个重要概念入手,在复杂API中还原出它本来的面目,以 ...
- Taro项目引入Tailwindcss
前情 Tailwind CSS 是一个原子类 CSS 框架,它将基础的 CSS 全部拆分为原子级别,同时还补全各种浏览器模式前缀,兼容性也不错.它的工作原理是扫描所有 HTML 文件.JavaScri ...
- 《HelloGitHub》第 87 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...