`

Linux学习笔记-文件搜索命令

 
阅读更多

 

搜索会占用大量资源,不建议使用搜索。

服务器规划要做好,各种数据软件存储位置都规划好,方便查找,而不用搜索

1.7.1.find

 

find [搜索范围] [匹配条件]

 

 

文件搜索

 

1.7.1.1.文件名精确搜索

-name 根据文件名搜索,精确搜索,只有文件名相等才能搜索出来

 

[root@localhost cn]# find /etc -name init

/etc/sysconfig/init

/etc/selinux/targeted/active/modules/100/init

 

[root@localhost cn]#

 

 

1.7.1.2.星号通配符

以上精确搜索,很多名字不易记全,因此需要模糊搜索

 

通配符:星号* 匹配任意多个任意字符

查找所有以init开头的文件

[root@localhost cn]# find /etc -name init*

/etc/sysconfig/network-scripts/init.ipv6-global

/etc/sysconfig/init

/etc/init.d

/etc/rc.d/init.d

/etc/inittab

/etc/selinux/targeted/active/modules/100/init

/etc/selinux/targeted/contexts/initrc_context

 

[root@localhost cn]#

 

 

 

1.7.1.3.问号通配符

 

通配符?,匹配单个任意字符

 

以init开头,并且后面有3个字符

[root@localhost cn]# find /etc -name init???

/etc/inittab

[root@localhost cn]#

 

 

1.7.1.4.不区分大小写

 

 

-iname

 

[root@localhost cn]# find /etc -iname init???

/etc/inittab

[root@localhost cn]#

 

 

1.7.1.5.文件大小查找

 

-size 根据文件大小查找

size的单位是块

100MB是多少?

1个数据块=512字节=0.5KB

100MB=102400KB=204800块

 

1KB=2块

 

 

+n大于  -n小于  =n等于

 

查找大于100MB的文件

[root@localhost cn]# find / -size +204800

/proc/kcore

find: ‘/proc/1503/task/1503/fd/6’: No such file or directory

find: ‘/proc/1503/task/1503/fdinfo/6’: No such file or directory

find: ‘/proc/1503/fd/6’: No such file or directory

find: ‘/proc/1503/fdinfo/6’: No such file or directory

/usr/lib/locale/locale-archive

 

 

 

1.7.1.6.根据所有者查找

 

-user 根据所有者查找

 

[root@localhost cn]# find ./ -user root

./

./yum.log

./test

./test/log.log

./test1

./test2.log

./test3

[root@localhost cn]#

 

 

1.7.1.7.时间属性查找

 

 

-amin 访问时间access

-cmin 文件属性change

-mmin 文件内容modify

 

 

find /etc –cmin 5

5分钟内被修改过属性的文件和目录

 

1.7.1.8.复合条件and or

 

-a 表示and 两个条件都满足

 

大于50MB,并且小于100MB的文件

find /etc –size +102400 –a –size 204800

 

 

-o 表示 or 两个条件满足任意一个即可

 

 

1.7.1.9.文件类型

 

-type 根据文件类型查找

 

f 文件 d 目录  l 软链接文件

 

[root@localhost cn]# find ./ -type d

./

./test

./test1

./test3

[root@localhost cn]# find ./ -type f

./yum.log

./test/log.log

./test2.log

[root@localhost cn]#

 

 

1.7.1.10.对搜索结果执行命令再处理

 

-exec 命令 {} \;

{}表示前面查找的结果

\转义

;表示结束

 

好像查找结果不正确?

[root@localhost cn]# find /tmp/cn -iname 'test*' -exec ls -l {} \;

total 0

-rw-r--r--. 1 root root 0 Apr 24 20:44 log.log

total 0

-rw-r--r--. 1 root root 0 Apr 24 21:10 /tmp/cn/test2.log

total 0

[root@localhost cn]#

 

 

-ok 命令 {} \;

这个会确认提示

 

好像查找结果不正确?

 

[root@localhost cn]# find /tmp/cn -iname 'test*' -ok ls -l {} \;

< ls ... /tmp/cn/test > ? y

total 0

-rw-r--r--. 1 root root 0 Apr 24 20:44 log.log

< ls ... /tmp/cn/test1 > ? y

total 0

< ls ... /tmp/cn/test2.log > ? y

-rw-r--r--. 1 root root 0 Apr 24 21:10 /tmp/cn/test2.log

< ls ... /tmp/cn/test3 > ? y

total 0

[root@localhost cn]#

 


 

多文件查找时,参数需要加单引号:

[root@localhost cn]# find /tmp/cn -iname test*

find: paths must precede expression: test1

Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

[root@localhost cn]# find /tmp/cn -iname 'test*'

/tmp/cn/test

/tmp/cn/test1

/tmp/cn/test2.log

/tmp/cn/test3

[root@localhost cn]#

 

 

1.7.1.11.i节点查找

-inum 根据i节点查找

 

[root@localhost cn]# ls -i

    5598 test  16777673 test1       201 test2.log  33575346 test3      5597 yum.log

[root@localhost cn]# ls -il

total 4

    5598 drwxrwxrwx. 2 root root 21 Apr 24 20:44 test

16777673 drwxr-xr-x. 2 root root  6 Apr 24 21:10 test1

     201 -rw-r--r--. 1 root root  0 Apr 24 21:10 test2.log

33575346 drwxr-xr--. 2 root root  6 Apr 24 21:17 test3

    5597 -rw-rwx--x. 1 root root 27 Apr 23 21:58 yum.log

[root@localhost cn]# find . -inum 201

./test2.log

[root@localhost cn]# find . -inum 201 -exec ls -l {} \;

-rw-r--r--. 1 root root 0 Apr 24 21:10 ./test2.log

[root@localhost cn]#

 

 

 1.8.其他文件搜索命令

 

1.8.1.locate

 

 

安装mlocate

locate命令在安装mlocate中,所以需要安装mlocate

 

[root@localhost ~]# locate init

-bash: locate: command not found

[root@localhost ~]# yum list mlocate

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.cn99.com

 * extras: mirrors.aliyun.com

 * updates: mirrors.aliyun.com

Available Packages

mlocate.x86_64                                   0.26-6.el7                                    base

[root@localhost ~]# yun install mlocate

-bash: yun: command not found

[root@localhost ~]# yum install mlocate

Loaded plugins: fastestmirror

base                                                                        | 3.6 kB  00:00:00

extras                                                                      | 3.4 kB  00:00:00

updates                                                                     | 3.4 kB  00:00:00

省略……………………………………………………….

Complete!

[root@localhost ~]# locate init

locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory

 

安装完成后,命令还是搜索不到内容,是因为资料库需要更新:

[root@localhost ~]# updatedb

[root@localhost ~]# locate init

/boot/initramfs-0-rescue-ee8e847af1004327a6a44a0a5a957248.img

/boot/initramfs-3.10.0-693.el7.x86_64.img

/boot/initrd-plymouth.img

/dev/initctl

 

 

 

locate搜索速度很快,他是在文件资料库中查找文件,所以速度很快。

语法:locate 文件名

 

locate自己维护的资料库:/var/lib/mlocate/mlocate.db

系统中所有的文件都会定期更新到这个文件资料库中。

 

存在的问题,新建的文件还未收录到资料库中的时间,是搜索不出来的。

 

更新文件资料库的命令:

updatedb

 

-i 不区分大小

locate –i init

 

[root@localhost opt]# locate china

/opt/china.log

[root@localhost opt]# locate -i china

/opt/China.log

/opt/china.log

 

[root@localhost opt]#

 

1.8.2.which

命令所在路径:/usr/bin/which

 

搜索命令所在目录及别名信息

 

[root@localhost opt]# which ls

alias ls='ls --color=auto'

        /usr/bin/ls

[root@localhost opt]# which locate

/usr/bin/locate

[root@localhost opt]#

 

查找命令别名

rm是rm –i的别名

当我们删除文件的时候一般会有提示,是因为-i起作用。

  -i  prompt before every removal

 

[root@localhost opt]# which rm

alias rm='rm -i'

        /usr/bin/rm

 

 

1.8.3.whereis

查找命令所在的目录及帮助文档路径,类似which

 

 

红色部分为文档路径

[root@localhost opt]# whereis rm

 

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

 

 

1.8.4.grep

在文件内容中搜索字串匹配的行并输出

-i 不区分大小写

-v 排除指定字符串

 

语法:grep –iv [指定字串] [文件]

 

 

[root@localhost opt]# grep to /etc/inittab

# multi-user.target: analogous to runlevel 3

# graphical.target: analogous to runlevel 5

 

不区分大小写

[root@localhost opt]# grep -i to /etc/inittab

# multi-user.target: analogous to runlevel 3

# graphical.target: analogous to runlevel 5

# To view current default target, run:

# To set a default target, run:

[root@localhost opt]#

 

 

查找文件中的配置信息,去掉注释,以#开头的行都是注释,都去掉

[root@localhost etc]# grep -v ^# yum.conf

[main]

cachedir=/var/cache/yum/$basearch/$releasever

keepcache=0

debuglevel=2

logfile=/var/log/yum.log

exactarch=1

obsoletes=1

gpgcheck=1

plugins=1

installonly_limit=5

bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum

distroverpkg=centos-release

 

 

 

[root@localhost etc]#

 

 

 

 

 

分享到:
评论

相关推荐

    Linux学习笔记Linux学习资料Linux教程

    【linux学习笔记--17】POSIX IPC——消息队列.doc 【linux学习笔记--18】POSIX IPC——信号量.doc 【linux学习笔记--19】...【linux学习笔记-5】编写自己的ls命令.doc 【linux学习笔记-6】文件IO操作--读写、重定向等.

    非常宝贵的LINUX学习笔记

    【linux学习笔记-5】编写自己的ls命令 【linux学习笔记-6】文件IO操作--读写、重定向等 【linux学习笔记-7】用户标识UID与有效用户标识EUID 【linux学习笔记-8】Linux进程相关系统调用(1) 【linux学习笔记-9】...

    linux学习笔记--很经典

    本篇“Linux学习笔记”详细介绍了Linux的基本目录结构及其各自的功能,这对于初学者理解Linux系统的核心概念非常重要。 #### 二、Linux目录结构解析 1. **/(根目录)** - 根目录是Linux文件系统的起点,所有的...

    Linux学习笔记-很不错适合linux入门者

    这份“Linux学习笔记-很不错适合linux入门者”文档恰好为初学者提供了一个很好的起点。 首先,笔记可能会从Linux的起源和发展讲起,包括Linux之父Linus Torvalds创建Linux内核的故事,以及GNU项目与自由软件运动...

    Linux学习笔记-超全总结值得一看(带标签目录)- 154页.pdf

    【Linux学习笔记】这篇超全总结涵盖了Linux操作系统的基础知识,特别是关于命令行的使用和快捷键,以及一些桌面环境下的快捷操作。以下是笔记中的主要内容: 1. **LINUX常用操作命令**: - `clear`:清空终端屏幕...

    linux学习笔记-01linux操作基础

    ### Linux学习笔记—01 Linux操作基础 #### 1. Linux 基础命令与用法 在Linux操作系统中,掌握一系列的基础命令是非常重要的。这些命令可以帮助用户进行各种日常操作,比如文件管理、目录切换、文件查看等。下面将...

    兄弟连linux教程1-16章学习笔记(全)

    《兄弟连Linux教程1-16章学习笔记》是一份全面涵盖Linux基础知识的学习资料,特别适合初学者和希望快速提升Linux技能的人群。这个压缩包包含了一系列文本文件和辅助图片,旨在帮助用户深入理解Linux系统的基本操作和...

    Linux学习笔记-初学者

    ### Linux学习笔记-初学者 #### 一、Linux分区命名规则及理解 Linux系统中的分区命名规则对于初学者来说非常重要,因为这直接影响到如何管理和识别不同的存储设备。下面详细介绍几个关键概念: - **MBR(Master ...

    Linux学习笔记二 - Liunx命令(基础篇)

    Linux学习笔记二 - Liunx命令(基础篇) 本篇学习笔记主要集中于 Linux 命令的基础知识,涵盖了从基本命令到高级命令的使用方法。通过本篇学习笔记,读者可以快速找到自己想要查询的指令功能与相关用语说明,并且...

    armlinux学习笔记--触摸屏驱动程序分析

    "armlinux学习笔记--触摸屏驱动程序分析"这本书深入探讨了这个主题,旨在帮助读者理解和开发针对Linux系统的触摸屏驱动。以下是关于这一主题的详细知识解析: 1. **嵌入式Linux**:嵌入式Linux是指将Linux操作系统...

    linux学习笔记-2

    ### Linux学习笔记精要 #### 一、Linux操作系统概述与常用命令 - **Shell与GUI**: Linux系统提供了两种主要的用户交互方式,图形用户界面(GUI)如Gnome和命令行界面(CLI)如Bash。GUI适合初学者,而CLI对于高效地...

    Linux学习笔记-面试必备

    Linux学习笔记整理资源 1、Linux简介:一种开源的、免费的操作系统,安装在计算机硬件上、用来管理计算机的硬件和软件资源的系统软件。 Linux注重安全性、稳定性、高并发处理能力,但缺乏优异的可视化界面。 2、...

    Linux学习笔记--RuanJava

    在Linux学习过程中,了解操作系统的核心结构以及主要目录的用途至关重要。Linux系统采用的是层次化的目录结构,这使得系统管理更为有序。以下是对标题和描述中涉及的一些关键知识点的详细解释: 1. **根目录** `/`...

    Linux常用命令学习笔记(-)

    ### Linux常用命令学习笔记 #### 一、更改帐号密码 - **命令**: `passwd` - **功能**: 更改用户密码。 - **语法**: `passwd` - 输入旧密码:`Old password:` - 输入新密码:`New password:` - 重新输入新密码...

    linux学习笔记-初学者必备

    ### Linux学习笔记——初学者必备知识点 #### 一、源列表配置 在Linux系统中,尤其是Ubuntu这样的发行版,为了确保软件包的更新与安装,我们需要正确地配置系统的软件源。给定的内容显示了几个不同的软件源地址: ...

    linux学习笔记,linux命令整理

    在Linux操作系统的学习中,掌握命令行的使用是至关重要的。...总的来说,Linux学习笔记是一个全面了解和掌握Linux系统操作的基础教程,涵盖了从基本命令到高级管理的诸多方面,对提升Linux技能有很大帮助。

    Linux学习笔记(强悍总结值得一看)_linux_linux学习笔记_

    这份"Linux学习笔记(强悍总结值得一看)"是Linux初学者的宝贵资源,也适合有经验的用户作为参考手册。以下是对笔记内容的详细概述: 1. **Linux常用命令**: Linux命令行是其强大的工具,掌握常用命令是Linux学习...

    写得蛮好的linux学习笔记--linux目录架构

    一切的起点,Linux系统中的所有文件和目录都是从根目录派生出来的。 #### /bin 存储了系统中最基本的、最常用的命令二进制文件。这些命令是系统管理员和用户日常操作中必不可少的工具,如`ls`、`cp`、`mv`等。 ##...

    Linux学习笔记13-使用mount命令挂载CDROM.docx

    这篇Linux学习笔记主要讲解如何使用`mount`命令挂载CDROM,并通过实际操作过程进行演示。首先,我们要理解Linux的目录结构,所有的设备、目录和文件都统一在一个大的目录树下,包括硬件设备。CDROM也不例外,它需要...

    Linux最佳入门-个人学习笔记-知识点总结.rar

    这是个人10年前的Linux Ubuntu学习笔记,之后查笔记时,都会补充新知识,也有纠错,涵盖了10个PDF文件,由有道笔记导出,非常适合初学者。这些PDF文件包含了丰富的知识和实用技巧,能够帮助您更好地掌握Linux Ubuntu...

Global site tag (gtag.js) - Google Analytics