linux如何查找目录6,Linux常见四种查找命令

最近在学Linux,和很多初学者一样,有一大堆的操作命令要去熟悉和掌握,由于Linux秉承“一切皆文件”的思想,因此我们在操作中经常会使用到文件查找的命令喽,下面就简单介绍下在Linux中比较常用的查找命令:

一、which

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

也就是说它返回的是你该命令所处的位置。

举个例子哈,比如说我现在看下使用gcc这个命令当前所在的路径,我用which查找下:

fb4a56be10cae3a2ae6730fbe1c5a754.png

二、whereis

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

简单来说就是查找你当前系统是否安装了该程序,如果安装了就显示该程序的路径。

下面就还以gcc为例:

3cc4ea85de46d32f13eb733dd38d67e8.png因为没有给参数,所以将所有信息都显示出来了,如果我们只想看说明文件的位置就用-m参数:

533ccc6e95506635928ccc4702feadd7.png

这样它就只讲你所需要的路径给出了。

下面是一些whereis的命令参数:

-b   定位可执行文件。

-m   定位帮助文件。

-s   定位源代码文件。

-u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

-B   指定搜索可执行文件的路径。

-M   指定搜索帮助文件的路径。

-S   指定搜索源代码文件的路径。

三、locate

说到locate,其实它基本已经能够完成我们基本所需的查找需求,并且速度很快,这是因为它是在一个库中进行查找的,上面的whereis也是哦。而不是通过硬盘来查找的,这个数据库是liunx自动创建的,并且每天更新一次。

下面我们还是看看它的用法吧:

其实用起来很简单,一般用# locate your_file_name 的形式就可以了,比如我要查找一个名为11_26.c的一个文件:

2752ab0674ee1c625206cfaa1bbfb369.png

再用之前最好先执行下updatedb更新下,然后再进行使用。

z再给一些常用的参数:

-n  至多显示n个输出。

-h  显示辅助讯息

-v  显示更多的讯息

-V  显示程式的版本讯息

四、find

关于find我就用一句话来形容它:find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。上面说了locate是在一个库里查找文件,因此对于一些有新变动的文件,而你的库还没更新时,这些文件你是用locate找不到的,这时find就派上用场了,它可是从硬盘里一个一个进行查找的,正因为这样它的速度也会相当慢,一般都把它丢到后台运行。

为什么说它功能强大呢?

因为它有很多的参数:

pathname:       #find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

-print:        #find命令将匹配的文件输出到标准输出。

-exec:        #find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式                   为‘command‘{ } \;,注意{ }和\;之间的空格。

-ok:          #和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell                   命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

-name   filename             #查找名为filename的文件

-perm                     #按执行权限来查找

-user    username            #按文件属主来查找

-group groupname              #按组来查找

-mtime   -n +n               #按文件更改时间来查找文件,-n指n天以内,+n指n天以前

-atime    -n +n              #按文件访问时间来查

-ctime    -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

-nogroup                   #查无有效属组的文件,即文件的属组在/etc/groups中不存在

-nouser                    #查无有效属主的文件,即文件的属主在/etc/passwd中不存在

-ctime    -n +n               #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

-nogroup                   #查无有效属组的文件,即文件的属组在/etc/groups中不存在

-nouser                    #查无有效属主的文件,即文件的属主在/etc/passwd中不存在

-newer   f1 !f2               #查更改时间比f1新但比f2旧的文件

-type    b/d/c/p/l/f         #查是块设备、目录、字符设备、管道、符号链接、普通文件

-size      n[c]               #查长度为n块[或n字节]的文件

-depth                       #使查找在进入子目录前先行查找完本目录

-fstype                     #查更改时间比f1新但比f2旧的文件

-type    b/d/c/p/l/f         #查是块设备、目录、字符设备、管道、符号链接、普通文件

-size      n[c]               #查长度为n块[或n字节]的文件

-depth                       #使查找在进入子目录前先行查找完本目录

-fstype       #查位于某一类型文件系统中的文件,这些文件系统类型通常可在/etc/fstab中找到

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

-follow                      #如果遇到符号链接文件,就跟踪链接所指的文件

-cpio        #查位于某一类型文件系统中的文件,这些文件系统类型通常可在/etc/fstab中找到

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

-follow                      #如果遇到符号链接文件,就跟踪链接所指的文件

-cpio                        #对匹配的文件使用cpio命令,将他们备份到磁带设备中

-prune                       #忽略某个目录

下面来举几个例子来体会下吧:

1、显示下今天一天在code目录中访问了哪些文件:

ad19fea1801af31a704297dbb09ee5dd.png

2、再看看10天内在c目录下更改了哪些文件:

6e0bc7de4a0c593d10814d0863a854e8.png

3、再看看7天内在c目录下创建了哪些文件:

00ffbbc7d925234c0235d334790186ca.png

4、再找找大小超过10000000c的文件:

f22cbf2cb2a13e7b6973b9312b7851fa.png5、在/查找11_26.c文件:

d14898409f1e9ce14fde1f320522118a.png

6、在/下查找code目录:

090e45260f90b67186559ed5f4d13e36.png

还有好多的参数就不一一列举了,大家一起去电脑上体验吧,而且参数组合使用可以让你对你的文件为所欲为,哈哈....

拜了个拜!

本文出自 “Waitting” 博客,转载请与作者联系!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值