文档章节

Linux常用命令之文件查找

r
 raykaeso
发布于 2016/04/07 14:31
字数 2358
阅读 2
收藏 0
每一种操作系统都是由成千上万个不同种类的文件所组成的。我们有时候忘记某份文件放在硬盘中的哪个地方,或者我们想快速的定位到某个文件。有时只隐约记得名字,或者一些文件相关的属性,比如修改文件时间,文件属性等,在windows下很方便的,直接搜索就可以了, Linux下就需要一些命令实现,本文主要讲解五个linux查找命令:find、locate、whereis、which、type。

find命令用来在指定目录下查找文件。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
-amin:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-anewer:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录;
-atime:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin:查找在指定时间之时被更改过的文件或目录;
-cnewer:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-ctime:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-daystart:从本日开始计算时间;
-depth:从指定目录下最深层的子目录开始查找;
-expty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录;
-exec:假设find指令的回传值为True,就执行该指令;
-false:将find指令的回传值皆设为False;
-fls:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;
-follow:排除符号连接;
-fprint:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;
-fprint0:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;
-fprintf:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;
-fstype:只寻找该文件系统类型下的文件或目录;
-gid:查找符合指定之群组识别码的文件或目录;
-group:查找符合指定之群组名称的文件或目录;
-help或——help:在线帮助;
-ilname:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;
-iname:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
-inum:查找符合指定的inode编号的文件或目录;
-ipath:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
-iregex:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;
-links:查找符合指定的硬连接数目的文件或目录;
-iname:指定字符串作为寻找符号连接的范本样式;
-ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
-maxdepth:设置最大目录层级;
-mindepth:设置最小目录层级;
-mmin:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mount:此参数的效果和指定“-xdev”相同;
-mtime:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-name:指定字符串作为寻找文件或目录的范本样式;
-newer:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-nogroup:找出不属于本地主机群组识别码的文件或目录;
-noleaf:不去考虑目录至少需拥有两个硬连接存在;
-nouser:找出不属于本地主机用户识别码的文件或目录;
-ok:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
-path:指定字符串作为寻找目录的范本样式;
-perm:查找符合指定的权限数值的文件或目录;
-print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
-print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
-printf:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
-prune:不寻找字符串作为寻找文件或目录的范本样式;
-regex:指定字符串作为寻找文件或目录的范本样式;
-size:查找符合指定的文件大小的文件;
-true:将find指令的回传值皆设为True;
-typ:只寻找符合指定的文件类型的文件;
-uid:查找符合指定的用户识别码的文件或目录;
-used:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;
-user:查找符和指定的拥有者名称的文件或目录;
-version或——version:显示版本信息;
-xdev:将范围局限在先行的文件系统中;
-xtype:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。

locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
-b, --basename 匹配唯一的路径名称的基本文件名
-c, --count 只显示找到条目的号码
-d, --database DBPATH 用 DBPATH 替代默认的数据库(/var/lib/mlocate/mlocate.db)
-e, --existing 只显示当前存在的文件条目
-L, --follow 当文件存在时跟随蔓延的符号链接 (默认)
-h, --help 显示本帮助
-i, --ignore-case 匹配模式时忽略大小写区别
-l, --limit, -n LIMIT 限制为 LIMIT项目的输出 (或 计数)
-m, --mmap 忽略向后兼容性
-P, --nofollow, -H 当检查文件时不跟随蔓延的符号链接
-0, --null 输出时以 NUL 分隔项目
-S, --statistics 不搜索项目,显示有关每个已用数据库的统计信息
-q, --quiet 不报告关于读取数据库的错误消息
-r, --regexp REGEXP 搜索基本正则表达式 REGEXP 来代替模式
--regex 模式是扩展正则表达式
-s, --stdio 忽略向后兼容性
-V, --version 显示版本信息
-w, --wholename 匹配完整路径名 (默认)

whereis命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
-b   定位可执行文件。
-m   定位帮助文件。
-s   定位源代码文件。
-u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
-B   指定搜索可执行文件的路径。
-M   指定搜索帮助文件的路径。
-S   指定搜索源代码文件的路径。

which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
-a 查找全部内容,而非第一个文件
-n <文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p <文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w  指定输出时栏位的宽度。
-V  显示版本信息。

type命令用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令。
-a 显示一个名字的所有可能
-t 判断一个名字当前是否是alias、keyword、function、builtin、file
-p 查看一个外部命令的执行路径
-P 查看内部命令路径
返回结果:
alias 别名
keyword 关键字,Shell保留字
function 函数,Shell函数
builtin 内建命令,Shell内建命令
file 文件,磁盘文件,外部命令
unfound 没有找到

本文转载自:https://www.leixuesong.com/575

r
粉丝 1
博文 69
码字总数 484
作品 0
武汉
个人站长
私信 提问
(三)Linux学习笔记-Linux常用命令-搜索命令

(三)Linux学习笔记-Linux常用命令-搜索命令 搜索命令 以下为Red Hat系列Linux的命令集,我使用的Centos7.5版本。 搜索命令 which(显示命令所在目录) find(查找文件或目录) locate(在文...

Super_RD
2018/12/05
0
0
Linux如何搜索文件的方法

#whereis 查找已经安装的软件 在Linux上查找某个文件是一件比较麻烦的事情。毕竟在Linux中需要我们使用专用的“查找”命令来寻找在硬盘上的文件。 Linux下的文件表达格式非常复杂,不象WINDO...

晨曦之光
2012/03/09
7.8K
0
软件测试人员在工作中如何运用Linux

从事过软件测试的小伙们就会明白会使用Linux是多么重要的一件事,工作时需要用到,面试时会被问到,简历中需要写到。 对于软件测试人员来说,不需要你多么熟练使用Linux所有命令,也不需要你...

软件测试网
2018/04/23
20
0
Java 开发必会的 Linux 命令

作为一个Java开发人员,有些常用的Linux命令必须掌握。即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令。因为很多服务器上都是Linux系统。所以,要和服务器机器...

oschina
2015/12/17
20.6K
54
如何在linux系统下使用 find 命令?

find命令是一个常用的且强大的命令,如何在linux系统下使用这个命令呢? 这个命令所包含的参数特别。。本文将会讲述一些常用的linux find 命令选项的用法。 find命令的格式:find [-path……...

LEAN_IN
2015/01/19
98
0

没有更多内容

加载失败,请刷新页面

加载更多

rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
5
0
简述TCP的流量控制与拥塞控制

1. TCP流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收。 原理是通过确认报文中窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出窗口大小。...

鏡花水月
今天
10
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
1K
11
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部