Linux查找文件命令总结

前言

使用电脑的时候,经常需要查找文件在Linux中,有很多方法可以做到这一点。国外网站LinuxHaxor总结了五条命令,你可以看看自己知道几条。大多数程序员,可能经常使用其中的2到3条,对这5条命令都很熟悉的人应该是不多的。

find命令

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

find的使用格式如下:

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

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

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

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

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

find的使用实例

find . -name "my*" //搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。

find . -name "my*" -ls //搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。

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

find ./workdir -name "config" //搜索./workdir目录及其子目录下的所有和config完全匹配的文件

find ./workdir -name "*config" //搜索./workdir目录及其子目录下的所有以config结尾的文件

find ./workdir -name "config*" //搜索./workdir目录及其子目录下的所有以config开头的文件

find ./workdir -name "*config*" //搜索./workdir目录及其子目录下的所有包括config字段的文件

locate命令

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

locate命令的使用实例

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

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

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

whereis命令

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

whereis命令的使用实例

whereis grep

which命令

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

which命令的使用实例

which grep

type命令

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

type命令的使用实例

type cd //系统会提示,cd是shell的自带命令(build-in)type grep //系统会提示,grep是一个外部命令,并显示该命令的路径。

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

grep命令

通过文件内容中的关键字查找其所属的文件,比较常见的有两种:

grep命令的使用实例

grep -rl "foobar" /home/userlan/ //查找在/home/userlan/目录中哪些文件中包含foobar这个关键字

grep "keyword" * -nR //其中n表示显示行号;R表示递归查找各个一级目录的子目录

分类

开发
    --go (9)
    --java (5)
    --php (11)
    --mysql (9)
    --javascript (3)
    --html (1)
    --算法 (6)
架构
    --理论 (9)
    --网络 (3)
    --服务器 (2)
    --消息队列 (3)
    --容器 (5)
    --监控 (1)
    --搜索引擎 (3)
    --大数据 (0)
    --测试 (1)
系统
    --linux (10)
    --mac (2)
    --windows (1)
足球
    --世界杯 (60)
    --欧洲杯 (28)
    --文迷 (3)
大学时光
    --校园生活 (96)
    --假期生活 (17)
    --广院杯那些事 (14)
    --北京奥运 (6)
    --胡思乱写 (17)


最近发布

零拷贝技术介绍

服务网格技术简介

C语言标准和标准库简介

Kubernetes简介及环境搭建

Go语言开发的顶级项目


归档

2006 (109)
2007 (40)
2008 (47)
2009 (10)
2010 (6)
2012 (10)
2013 (14)
2014 (27)
2015 (15)
2016 (6)
2017 (8)
2018 (11)
2019 (17)
2020 (5)