服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Centos - CentOS下如何搜寻档案或目录命令

CentOS下如何搜寻档案或目录命令

2019-06-21 10:44网络 Centos

很多朋友不知道CentOS下如何搜寻档案或目录命令;今天小编将为大家带来CentOS下搜寻档案或目录命令的方法,有需要的朋友一起去看看吧

搜寻档案或目录:

档案的搜寻可就厉害了!因为我们常常需要知道那个档案放在哪里,所以来谈一谈怎么搜寻吧!在 Linux 底下也有相当优异的

搜寻系统呦!通常 find 不很常用的!因为速度慢之外,也很操硬盘!通常我们都是先使用 whereis 或者是 locate 来检查,如果

真的找不到了,才以 find 来搜寻呦!为什么呢?因为 whereis 与 locate 是利用数据库来搜寻数据,所以相当的快速,而且并没

有实际的搜寻硬盘,比较省时间啦!

which   查看可执行档案的位置

whereis 查看档案的位置

locate  配合数据库查看档案位置

find    实际搜寻硬盘去查询文件名称

• which

语法:

[root @test /root ]# which  [文件名称]

参数说明:

范例:

[root @test /root]# which passwd

/usr/bin/passwd

说明: which 的基本功能是『藉由 PATH 这个环境变量的内容,去该路径内寻找可执行文件』,所以基本的功能在于『寻找

执行档』啰!

• whereis

语法:

[root @test /root ]# whereis [-bmsu] [目录名称]

参数说明:

-b    :只找 binary 的档案

-m    :只找在说明文件 manual 路径下的档案

-s    :只找 source 来源档案

-u    :没有说明档的档案!

范例:

[root @test /root]# whereis passwd

passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.bz2

将 passwd 相关字眼的档案或目录都列出来!

[root @test /root]# whereis -b passwd

passwd: /usr/bin/passwd /etc/passwd

仅列出binary 档案!

[root @test /root]# whereis -m passwd

passwd: /usr/share/man/man1/passwd.1.bz2

仅搜寻 man page 所在的目录!

说明:

如果使用 find 太麻烦,而且时间花用的很大!(因为如果你的硬盘比较老旧的话,嘿嘿!有的等的!)这个时候

whereis 就相当的好用了!另外, whereis 可以加入参数来找寻相关的资料,例如如果你是要找可执行档( binary )

那么加上 -b 就可以啦!例如上面的范例针对 passwd 这支程序来说明!如果不加任何参数的话,那么就将所有的数

据列出来啰!那么 whereis 到底是使用什么咚咚呢?为何搜寻的速度会比 find 快这么多?!其实那也没有什么!这是

因为 Linux 系统会将系统内的所有档案都记录在一个数据库档案里面,而当使用 whereis 或者是底下要说的 locate 时,

都会以此数据库档案的内容为准,因此,有的时后你还会发现使用这两个执行档时,会找到已经被杀掉的档案!这就

是因为他是一个『数据库』档案呀!另外,基本上 Linux 每天会针对 Linux 主机进行 updatedb (就是那一个数据库

档案啰!)的动作,你可以在 /etc/cron.weekly/slocate.cron 这个档案找到相关的机制呦!当然,也可以直接使用

/usr/bin/updatedb 来更新数据库档案呢!

• locate

语法:

[root @test /root ]# locate [目录名称]

参数说明:

范例:

[root @test /root]# locate root

……一大堆跟 root 有关字眼的档案都出来了 @_@

[root @test /root]# updatedb        <==立刻更新数据库

说明:

locate 的使用方式就更简单了!直接键入你要找的档名即可!但是,这个东西还是有使用上的限制呦!为什么呢?您

会发现使用 locate 来寻找数据的时候特别的快,这是因为 locate 寻找的数据是由『已建立的数据库 /var/lib/slocate』

里面的数据所搜寻到的,所以不用直接在去硬盘当中存取数据,呵呵!当然是很快速啰!那么有什么限制呢?就是因

为他是经 由数据库来搜寻的,而数据库的建立预设是在每个礼拜执行一次,所以当您新建立起来的档案,却还在数

据库更新之前搜寻该档案,那么 locate 会告诉您『找不到!』呵呵!因为必须要更新数据库呀!

那么我到底要建立哪些数据库呢?是否全部都要建立?似乎不需要,这个时候,你可以自己选择需要建立档案数据库

的目录呢!在 /etc/updatedb.conf 这个内即可设定了!

[root @test root]# more /etc/updatedb.conf

## Linux-Mandrake configuration.

# 由何处开始查询数据,当然是由根目录啦!所以填入 / 即可

FROM="/"

# 哪些目录不想要建立档案搜寻数据,呵呵!就是那些不要的数据嘛!

# 忘记的话,记得回上一章去看看内容,就知道为何如此设定了!

PRUNEPATHS="/proc,/tmp,/var/tmp,/usr/tmp,/net,/afs,/mnt"

# 安全等级

#   0 代表关闭安全检验,速度上面较快速,但较不安全;

#   1 启动安全简易,这是系统的默认值; SECURITY="1"

# 查询的时候是否要由屏幕输出?当然不要,否则多麻烦?

VERBOSE="NO"

# 数据库所在处!这是默认值,不要随意移动,否则会找不到!

DATABASE="/var/lib/slocate/slocate.db"

# 哪些档案系统我们也不搜寻建立?就是光盘啦、非 Linux 的档案格式啦,

# 我们都不要进行搜寻信息的建立啦!

PRUNEFS="nfs,smbfs,ncpfs,proc,devpts,supermount,vfat,iso9660,udf,usbdevfs,devfs"

• find

语法:

[root @test /root ]# find [路径] [参数]

参数说明:

1. 时间:

-atime n    :在 n*24 小时内被 access 即存取过的档案列出来!

-ctime n    :在 n*24 小时内被 changed 即改变、新增的档案或目录印出

-mtime n    :在 n*24 小时内被 modified 即修改过的档案印出

-newer file :比 file 还要新的档案就列出来!

2. 使用名称:

-gid n      :寻找 群组 ID 为 n 的档案

-group name :寻找群组名称为 name 的档案

-uid n      :寻找拥有者 ID 为 n 的档案

-user name  :寻找使用者名称为 name 的档案

-name file  :寻找档名为 file 的文件名称(可以使用万用字符)

-type type  :寻找档案属性为 type 的档案,type 包含了 b, c, d, p, l, s,

这些与前一章的属性相同!例如 l 为 Link 而 d 为路径之意!

范例:

[root @test /root]# find / -name testing            <==寻找档名为 testing 

[root @test /root]# find / -name 'test*'       <==寻找档名包含 test 的!

[root @test /root]# find . -ctime 1                 <==寻找目前目录下一天内新增的目录或档案

[root @test /root]# find /home/test -newer .bashrc  <==寻找 /home/test 目录下比 .bashrc 还要新的档案

[root @test /root]# find /home -user test       <==寻找 /home 底下拥有者为 test 的档案

[root @test /root]# find /dev -type b               <==寻找 /dev 这个目录下,档案属性为 b 的档案

说明:

如果你要寻找一个档案的话,那么使用 find 会是一个不错的主意!他可以根据不同的参数来给予档案的搜寻功能!

例如你要寻找一个档名为 httpd.conf 的档案,你知道他应该是在 /etc 底下,那么就可以使用『 find /etc -name

httpd.conf 』噜!那如果你记得有一个档案档名包含了 httpd ,但是不知道全名怎办?!呵呵,就用万用字符 * 吧,

如上以:『 find /etc -name '*httpd*' 』就可将档名含有 httpd 的档案都列出来啰!不过,由于 find 在寻找数据的时

后相当的耗硬盘!所以没事情不要使用 find 啦!有更棒的指令可以取代呦!那就是 whereis 与 locate 啰!!

延伸 · 阅读

精彩推荐
  • CentosCentos7运用/dev/shm进行网站优化

    Centos7运用/dev/shm进行网站优化

    这篇文章主要介绍了LINUX中Centos7运用/dev/shm进行网站优化相关知识点,对此有兴趣的朋友参考学习下。...

    彬菌9912022-03-02
  • Centoscentos 安装与操作方法

    centos 安装与操作方法

    这篇文章主要介绍了centos 安装与操作方法,需要的朋友可以参考下...

    centos之家5272019-07-11
  • CentosCentOS6.5下Redis安装与配置详细步骤

    CentOS6.5下Redis安装与配置详细步骤

    本篇文章主要介绍了CentOS6.5下Redis安装与配置详细步骤,详细介绍redis单机单实例安装与配置,服务及开机自启动。有兴趣的可以了解一下。...

    飞流11452021-12-24
  • CentosCentOS下Uptime命令详解

    CentOS下Uptime命令详解

    在Linux下,我们可以使用uptime命令,而且此命令不必使用root权限。uptime命令在系统中已经默认安装了。今天小编为大家带来的是CentOS下Uptime命令详解;希望...

    CentOS之家11482019-06-19
  • Centoscentos不小心删除/root目录该如何解决?

    centos不小心删除/root目录该如何解决?

    一些朋友最近在问小编centos不小心删除/root目录该如何解决?今天小编就为大家分享centos不小心删除/root目录解决办法;希望对大家会有帮助,有需要的朋友...

    脚本之家8022019-05-29
  • CentosCentos 7开启网卡自动获取IP的详细方法

    Centos 7开启网卡自动获取IP的详细方法

    本篇文章主要介绍了Centos 7开启网卡自动获取IP的详细方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    凌锋8972021-12-29
  • CentosCentOS 6.6实现永久修改DNS地址的方法

    CentOS 6.6实现永久修改DNS地址的方法

    这篇文章主要介绍了CentOS 6.6实现永久修改DNS地址的方法,涉及针对CentOS配置文件的相关设置技巧,具有一定参考借鉴价值,需要的朋友可以参考下 ...

    Linux社区4472020-08-21
  • CentosCentOS7设置日期和时间方法以及基本概念介绍

    CentOS7设置日期和时间方法以及基本概念介绍

    这篇文章主要介绍了CentOS7设置日期和时间方法以及基本概念介绍,本文讲解使用CentOS7中的新命令timedatectl设置日期时间方法,需要的朋友可以参考下 ...

    CentOS之家6522019-09-19