linux下查找文件的方法

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/mlocate/mlocate.db),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

$ locate xyz.py  # 查找一个不存在的文件 xyz.py, 找不到结果

$ touch  xyz.py  # 手动建立xyz.py, 并

$ locate xyz.py  # 使用 locate 查找,仍然查不到

$ sudo updatedb  # 更新数据库

$ locate xyz.py     # 再次locate 查找, okay

/home/jia/xyz.py

locate命令的使用实例:

  $ locate /etc/sh

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

  $ locate ~/m

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

  $ locate -i ~/m//-i : ignore 忽略文件名的大小写

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

$ locate -w ‘src.zip‘//-w : wholename 全名匹配

搜索文件名为src.zip的文件,全名匹配。

$ locate -r ls$//-r : regex 正则匹配以ls结尾的文件

$locate -r ^/boot/grup//搜索以/boot/grub开头的文件

3. whereis

whereis 严格来讲是从你环境变量的路径(HOME、PATH等路径)中查找目标。速度快,范围有限。只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

whereis命令的使用实例:

$ whereis grep

grep: /bin/grep   /usr/share/man/man1/grep.1.gz

$ whereis -b grep

grep: /bin/grep

$ whereis -m  grep

grep: /usr/share/man/man1/grep.1.gz

$ whereis -s  grep

grep:

4. which

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

which命令的使用实例:

  $ which grep

/bin/grep

5. type

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

type命令的使用实例:

  $ type cd

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

  $ type pacman

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

  $ type -p grep

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

时间: 2024-08-07 00:13:42

linux下查找文件的方法的相关文章

linux 下查找文件的路径

必须提醒你的是:locate命令非常快,其实 locate 命令他查询的是系统中的一个数据库.这个数据库通常会在一定时间更新.这样确实很方便,但是:如果你新建一个文件 $ touch file_for_test然后你输入$ locate file_for_test这样你是不会找到这个文件的.这时你必须手动更新这个数据库,进入管理员权限($ sudo su - 或者其它之类)然后键入# updatedb 当你再入输入$ locate file_for_test 时你就能发现能找到它了~~~~ 祝好

linux下查找文件

1,find 经常在linux下工作,总要查找一些文件,于是就搜索的学习了一下 find 指定目录 指定条件 指定动作 举例:find . -name "my*" 查找 当前目录下,以my开头的文件或目录 如果查找指定文件 建议,-name 名字 find . -name "my*" -ls 查找文件并显示详细信息 2,locate 据说比find更快 例如 locate 文件名 会在跟目录下,搜索包含文件名的文件或目录 缺点,会找出很多包含的不需要的文件 参考网址

Linux下查找文件:which、whereis、locate、find 命令的区别

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.which       查看可执行文件的位置,通过环境变量查whereis    查看文件的位置,通过数据库查,每周更新locate       配合数据库查看文件位置,通过数据库查,每周更新find          实际搜寻硬盘查询文件名称,查硬盘 1.which 语法: [[email protected] ~]# which 可执行文件名称 例如: [[email protected] ~]# whic

Linux下查找文件find命令

在Linux下,常常需要在某个位置下,找一些文件.怎么办?使用find命令就够了.find search-path expressions search-string 如果要搜索当前目录.那么 search-path 可以为空或者为 句号 '.' 假如查找当前目录下 3分钟前被访问过的文件.find . -amin 3 假如查找四天前被访问过的文件. find . -atime 4 假如查找5分钟前文件名被改变的文件.find . -cmin 5 假如查找6天前文件名被改变的文件.find .

linux下core文件调试方法(转载)

转自于:http://blog.csdn.net/fcryuuhou/article/details/8507775 在程序遇到段错误不寻常退出时,一般是访问内存出错.但是不会给出程序哪里出现的问题,这个时候就需要core文件来帮助调试. 内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息).使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数. 1.core文件的生成开关和大小限制 1)使用ulimit -c命令可查看core文件的生成开关.若结果

linux 下查找文件或者内容常有命令

whereis <程序名称>查找软件的安装路径-b 只查找二进制文件-m 只查找帮助文件-s 只查找源代码-u 排除指定类型文件-f 只显示文件名-B <目录> 在指定目录下查找二进制文件-M <目录> 在指定目录下查找帮助文件-S <目录> 在指定目录下查找源代码 locate <文件名称>在文件索引数据库中搜索文件-d <数据库路径> 搜索指定数据库updatedb更新文件索引数据库 find [路径] <表达式>查找

Linux下查找文件方法

1.查找系统中最大目录并排序:du -h --max-depth=1 | sort -n 2.查找当前目录文件大于800M:find . -type f -size +800M 3.查找到大文件之后做动作:find .-type f -size +800M | xargs command

linux下查找文件及文件内查找内容--find/grep/sed/awk

1.find 查找到想要的文件或目录 格式:find  [path]   [-OPTION]  [-exec |grep  |xargs   -ok  -print   | ……]   [command  {} \;] 参数: -type    以类型查找 f    文件 d   目录 -name    以文件名查找 -size    根据问价大小来查找.eg:  find /data -size 5M -perm    根据文件权限查找.  eg: find /data -perm 755 -

linux下查找文件或目录(which,whereis,locate,find)

命令 查找对象 查找速度 备注 which 可执行文件  根据PATH变量的内容去寻找可执行文件  不同的PATH配置会有不一样的结果 whereis 程序名的搜索  根据数据库来寻找,速度快  只支持二进制文件,源代码,man手册 locate 文件或目录  根据数据库来寻找,速度快  更新数据库:$sudo updatedb find 文件或目录  在硬盘里寻找,速度慢  NA