linux中Find、whereis、locate、which查找文件命令总结-From cyber

Find

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

主要选项:

-name 按照文件名查找文件

-perm 按照文件权限来查找文件

-prune 不在当前指定的目录中查找

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

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

-mtime -n +n 按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前.

-nogroup 查找无有效所属组的文件,即该文件所属的组不存在

-nouser 查找无有效属主的文件

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

-type 查找某一类型的文件

[ 文件类型:

b 块设备文件

d 目录

c 字符设备文件

p 管道文件

l 符号链接文件

f 普通文件

]

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

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

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

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

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

(其余选项,请man find,进一步查看)

对find命令选项的一些例子:

$ find /etc -type d #在/ etc目录下查找所有的目录

$ find /etc -user yaoyuan #在/etc目录下查找文件属主为yaoyuan的文件

$ find . -size +1000000c #在当前目录下查找文件长度大于1 M字节的文件

whereis

whereis命令会在指定的目录中查找符合条件的文件,文件应的属性应属于原始代码,二进制文件,或是帮助文件.

选项:

-b 只查找二进制文件

-B 只在设置的目录下查找二进制文件

-f 不显示文件名前的路径名称

-m 只查找说明文件

-M 只在设置的目录下查找说明文件

-s 只查找原始代码文件

-S 只在设置的目录下查找原始代码文件

-u 查找不包含指定类型的文件

whereis例子

$ whereis mysql

mysql: /usr/bin/mysql /etc/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

locate

locate命令用于查找符合条件的文件,它会去保存文件与目录名称的数据库内,查找符合条件的文件或目录

选项:

-u 建立数据库,由根目录开始

-U 建立数据库,可以指定开始的位置

-e 将排除在寻找的范围之外

-f 将特定的档案系统排除在外

-q 安静模式,不会显示任何错误讯息

-n 至多显示n个输出

-r 使用正规运算式 做寻找的条件

-o 指定数据库存的名称

-d 指定数据库的路径

-h 显示辅助讯息

-v 显示更多的讯息

-V 显示程序的版本讯息

(locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron
daemon周期性建立的,locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或
刚更名的,可能会找不到,在内定值中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab)

  locate指定用在搜寻符合条件的档案,它会去储存档案与目录名称的数据库内,寻找合乎范本样式条件的档案或目录录,可以使用特殊字元
(如"*"或"?"等)来指定范本样式,如指定范本为kcpa*ner,
locate会找出所有起始字串为kcpa且结尾为ner的档案或目录,如名称为kcpartner若目录录名称为kcpa_ner则会列出该目录下包括
子目录在内的所有档案。 )

locate例子:

$ locate inittab

/usr/lib/upstart/migrate-inittab.pl

/usr/share/terminfo/a/ansi+inittabs

which

which 和where 相似,只是我们所设置的环境变量中设置好的路径中寻找;比如;

[[email protected] ~]# which fdisk

/sbin/fdisk

=============================================================================================================

1. find

find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。

find的使用格式如下:

  $ find <指定目录> <指定条件> <指定动作>

  - <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。

  - <指定条件>: 所要搜索的文件的特征。

  - <指定动作>: 对搜索结果进行特定的处理。

如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

find的使用实例:

  $ find . -name "my*"

搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。

  $ find . -name "my*" -ls

搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。

  $ find . -type f -mmin -10

搜索当前目录中,所有过去10分钟中更新过的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录。

2. locate

locate命令其实是“find
-name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含
有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可
以在使用locate之前,先使用updatedb命令,手动更新数据库。

locate命令的使用实例:

  $ locate /etc/sh

搜索etc目录下所有以sh开头的文件。

  $ locate ~/m

搜索用户主目录下,所有以m开头的文件。

  $ locate -i ~/m

搜索用户主目录下,所有以m开头的文件,并且忽略大小写。

3. whereis

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

whereis命令的使用实例:

  $ whereis grep

4. which

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

which命令的使用实例:

  $ which grep

5. type

type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。

type命令的使用实例:

  $ type cd

系统会提示,cd是shell的自带命令(build-in)。

  $ type grep

系统会提示,grep是一个外部命令,并显示该命令的路径。

  $ type -p grep

加上-p参数后,就相当于which命令。

时间: 2024-12-22 04:34:16

linux中Find、whereis、locate、which查找文件命令总结-From cyber的相关文章

linux中使用lftp上传下载文件

lftp是linux中一款ftp服务器相比windows中的ftp显得要复杂不少了,下面我来总结一下lftp文件上传,文件下载,及文件查找等等相关命令吧. lftp连接的几种方法,最常用的是lftp [email protected],这样可以不用明文输入密码. 1.lftp [email protected] 回车 输入密码 2.lftp name:[email protected] 回车 3.lftp site 回车login 用户名 密码 4.lftp 回车 open site 回车 lo

在Linux中通过Top运行进程查找最高内存和CPU使用率

按内存使用情况查找前15个进程,在批处理模式下为“top” 使用top命令查看有关当前状态,系统使用情况的更详细信息:正常运行时间,负载平均值和进程总数. 分类:Linux命令操作系统 2016-07-27 00:00:00 类似于前面的技巧有关找出由RAM和CPU使用率最高的进程 ,还可以使用top命令来查看相同的信息. 也许有相比前一个这种方法的一个额外的优势:顶级的“头”,提供有关当前状态和使用该系统的额外信息:正常运行时间,平均负载和进程总数,仅举几例例子. 按顶部查找按内存使用的进程

Linux 中最常用的目录及文件管理命令

一.查看文件的命令 对于一个文本文件,在linux中有多种查看方式来获知文件内容,如直接显示整个文本内容.分页查看内容.或者只查看文件开头或末尾的部分内容.在linux可以用不同的命令来实现. 1. cat -显示并连接文件的内容 该命令是应用最为广泛的内容查看命令.使用该命令时,只需要把要查看的文件路径作为参数即可.例如,以下操作可以查看/etc/sysconfig/network-scripts/ifcfg-eth0配置文件的内容,了解第一块网卡的配置信息. 2. more 和 less  

linux 中常见的压缩和解压缩的命令

# linux 中常见的压缩和解压缩的命令 一.tar 1.解压: tar zxvf filename.tar 2.压缩: tar czvf filename.tar dirname 二.gz 1.解压: gunzip filename.gz gzip -d filename.gz 2.压缩: gzip filename 三.tar.gz 和 tgz 1.解压 tar zxvf filename.tar.gz 2.压缩 tar zcvf filename.tar.gz dirname 3.压缩多

Linux下相关查找文件命令(find locate which whereis type)

以下内容摘自:http://blog.csdn.net/jessica1201/article/details/8139249 标注的内容为自己的补充: 我们经常需要在系统中查找一个文件,那么在linux系统中我们如何准确高效的确定一个文件在系统中的具体位置呢?一下我总结了在linux系统中用于查找文件的几个命令. 1.find命令 find是最常用也是最强大的查找命令,它可以查找任何类型的文件. find命令的一般格式为:find <指定目录><指定条件><指定动作>

linux中find,locate,whereis,which关系和用法

主要有find,locate,whereis,which等 1. find是最常用也是最强大的查找命令,它可以查找任何类型的文件. find命令的一般格式为:find <指定目录><指定条件><指定动作>,即find pathname -options [-print -exec -ok] 参数解释: pathname:pathname为搜索的目录及其子目录,默认情况下为当前目录 常用的option选项: -name:按文件名来查找文件 -user:按照文件的属主来查找

find查找文件命令 - Linux系统中的常用技巧整理

"find"在Linux系统中是比较常用的文件查找命令,使用方法有很多,可以拥有查找文件.文件目录.文件更新时间.文件大小.文件权限及对比文件时间.下面是整理的"find"常用方法,方便以后需要的时候直接到此文章查看. 一.查找文件或者目录 find ./ -name file #file请改成自己要差的文件 二.查找文件更新时间 find ./ -mtime -3 #文件更新在3天内的 find ./ -mtime +3 #文件更新在3天以上的 三.查找文件大小

linux查找文件命令总结

使用电脑的时候,经常需要查找文件在Linux中,有很多方法可以做到这一点.国外网站LinuxHaxor总结了五条命令,你可以看看自己知道几条.大多数程序员,可能经常使用其中的2到3条,对这5条命令都很熟悉的人应该是不多的.1. findfind是最常见和最强大的查找命令,你可以用它找到任何你想找的文件.find的使用格式如下:$ find <指定目录> <指定条件> <指定动作>- <指定目录>: 所要搜索的目录及其所有子目录.默认为当前目录.- <指

linux下常用的查找文件命令

一.常用的查找命令 我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which       查看可执行文件的位置 whereis    查看文件的位置 locate       配 合数据库查看文件位置 find          实际搜寻硬盘查询文件名称 二.which命令的常用方法 which是通过 PATH环境变量到该路径内查找可执行文件,所以基本的功能是寻找可执行文件: [[email protected] ~]# which cat /bin/c