Linux运维工作一般都使用命令完成,在如此多的各种命令中,要想全部记住显然是不太可能也是不必要的,另外,文件的查找在日常操作中也是必不可少的。下面我就总结一下Linux中如何查找命令以及文件。

    命令的运行文件路径查询。这个查找的方法是同样是使用命令,这个命令叫which,它能帮我们查找到命令的路径。具体它的详细介绍我们可以man一下哦。

    马哥Linux学习之查询篇(命令查询和文件查询)_linux

    接下来,我们使用which查看命令的路径。先看一下最常用的ls命令吧。

    马哥Linux学习之查询篇(命令查询和文件查询)_查找_02

    在图中大家可以看到执行的结果显示出来了,不但显示了ls命令的运行文件路径,而且显示了此命令是有定义一个别名的。好的,钻牛角尖的同学肯定就会出来问题了,我TMD的不想看到这个别名定义,能不能不显示让它看起来顺眼一点啊,哦,好的,无所不能的linux满足你变态的要求,在命令加上–skip-alias选项就可以跳过别名了,其它地方也可能用到哈,表忘了。

    马哥Linux学习之查询篇(命令查询和文件查询)_查找_03

    好的,大家看到了,which命令可以很好的查出命令的运行文件路径,记得写脚本时,脚本里非shell内置命令尽量使用命令的完全路径哦,比如。 /bin/ls /home/student 。这样的写法可以保证执行时百分百的成功率。


    另外一个类似功能的命令是type命令。它可以判断一个命令的类型,如果是shell内置的命令,则显示如下:

    马哥Linux学习之查询篇(命令查询和文件查询)_查找_04

    上图中第二条命令也查到了这条命令的路径哈,当然,这同时也表明了这条命令不是shell的内置命令。

    嗯,命令的路径和类型已经知道怎么查了,至于命令的用法,你可以使用man ,help ,各种度娘和谷歌哦。


    文件的查找大法。接着总结三种常见的文件查找方法。

    文件查找方法一,whereis命令。使用whereis可以查找文件和命令。使用方法是#whereis COMMAND or FILENAME.

    马哥Linux学习之查询篇(命令查询和文件查询)_查询_05

    可以使用选项只查看二进制文件、说明文件manual路径下的文件和source源文件。需要注意的是,whereis命令是使用数据库进行查询的,这个数据库的更新不是特别快,所以结果也不是实时并完全准确的。


    文件查找方法二,locate命令。locate命令和whereis比较类似,都是使用数据库查询,为了查找的准确性,你可以使用updatedb命令先更新数据库再进行查找。


    文件查找方法三,find命令,使用最多功能最强的查找命令。

    使用find命令,可以以时间为标准进行查找。

    例如查找/home/目录下7天内更改过的文件。嗯,最后加了 -ls可以将结果以ls方式显示出来。

    马哥Linux学习之查询篇(命令查询和文件查询)_查找_06

    时间选项还有atime(访问时间)和ctime(创建时间),选项参数有n,+n,-n等常用的三个,分别表示n天前当天、n天前不包括当天、n天内含n天。

    马哥Linux学习之查询篇(命令查询和文件查询)_linux_07

    find命令也支持以用户或用户组为标准进行查找。

    马哥Linux学习之查询篇(命令查询和文件查询)_查询_08

    在上图中可以看到我在/home目录下查找属主为root的文件。-ls后重定向sort是为看上去好一点,哈哈。

    find命令还支持以文件各种属性为标准进行查找,如文件的名字、大小、权限、类型等来进行查找。

    马哥Linux学习之查询篇(命令查询和文件查询)_linux_09

                                以名字来查找的

    

    马哥Linux学习之查询篇(命令查询和文件查询)_查找_10

                              以文件类型来查找的

    其它的就不举例了哈,Good Good Study,Day Day Up└(^o^)┘.