文档章节

shell端查找和搜索:which, whereis, locate, find and grep

ancient_wind
 ancient_wind
发布于 2015/04/28 15:00
字数 756
阅读 27
收藏 0
点赞 0
评论 0

简单总结一下shell常用的文件查找和内容搜索工具.

which

可以查找执行文件的路径,例如:

-bash-4.3$ which ifconfig
/sbin/ifconfig
-bash-4.3$ which ls
alias ls='ls --color=auto'
        /bin/ls

whereis and locate

用于文件名的查找。find命令相对较慢,这两个命令利用数据库(Linux系统会将所有的文件记录在一个数据库文件里面)来查找数据,相当快速,找不到时再用find。

whereis 查找特定文件,例如:

-bash-4.3$ whereis profile
profile: /etc/profile.d /etc/profile /usr/include/profile.h
-bash-4.3$ whereis vimrc
vimrc: /etc/vimrc

locate可以通过文件的部分名称来查找,命令示例如:

locate [-ir] keywork  # i:ignore ; r: regular

-bash-4.3$ locate vimrc
/etc/vimrc
/etc/libreport/events/collect_vimrc_system.xml
/etc/libreport/events/collect_vimrc_user.xml
/etc/libreport/events.d/vimrc_event.conf

-bash-4.3$ locate ifconfig
/sbin/ifconfig
/usr/libexec/hypervkvpd/hv_set_ifconfig
/usr/sbin/pifconfig

locate查找的是已创建的数据库:/var/lib/mlocate,此数据库默认每天创建一次,可以用“updatedb”手动更新。

find

速度较慢但是功能强大。下面分几个不同的功能来介绍此命令:

命令格式: 

find [PATH] [option] [action]

1. 时间参数

-mtime n: n天之前的“一天之内”改过的文件
-mtime +n: n天之前改过的文件
-mtime -n: n天之内改过的文件

-newer file: 与已存在的file相比还要新的文件,比较新旧文件时有用

2. 用户和用户组

-uid n: n = UID, records in /etc/passwd
-gid n: n = GID, records in /etc/group
-user name
-group name
-nouser: find file belongs to none of user in /etc/passwd
-nogroup

-bash-4.3$ find temp/ -user ancient_wind
temp/
temp/predixDoc.tar
temp/newfile
temp/newfile2

3. 文件权限及名称

-name filename: filename可以用通配符
-size [+-]SIZE: for SIZE, c=byte, k=1024bytes
-type TYPE: f=file, d=folder, b/c=device, l=link, s=socket, p=FIFO
-perm [+-]mode: mode is like the value of chmod, perm=permission

4. 其他功能

find的特殊功能是能够进行额外的动作(action)

-exec command
-print: this is a default action

-bash-4.3$ find / -perm +7000 -exec ls -l {} \;
此例中,find的结果放到{}中,\转义符,位于-exec到;之间的就是action。

grep

grep是一个更加强大的文件/内容搜索工具,常配合管道使用。基本语法如下:

[root@www ~]# grep [-acinv] [--color=auto] “keywords” filename
选项与参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色的显示喔!

搜索关键字可使用正则表达式。

常用示例

1. 目录下搜素文件名包含某字符的文件
find ~/tmp -name "[Ss]hell*"

2. 搜素子目录下包含特定内容的文件
grep -r "key" dir
grep -R --include="*.java" “key” dir

3. 搜索空白行
grep -n "^&" file

4. 搜索以小数点结尾的行
grep -n "\.&" file


© 著作权归作者所有

共有 人打赏支持
ancient_wind
粉丝 2
博文 15
码字总数 7895
作品 0
大兴
程序员
Linux的查找命令

在学习和使用Linux时经常需要查找文件。 在Linux中,有很多方法可以做到这一点。国外网站LinuxHaxor总结了五条命令,大多数人,可能经常使用其中的2到3条,对这5条命令都很熟悉的人应该是不多...

驛路梨花醉美 ⋅ 2016/08/10 ⋅ 0

linux查找文件命令总结

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

有些服务器 ⋅ 2015/07/18 ⋅ 0

Linux的五个查找命令

最近,我在学习Linux,下面是一些笔记。 使用电脑的时候,经常需要查找文件。 在Linux中,有很多方法可以做到这一点。国外网站LinuxHaxor总结了五条命令,你可以看看自己知道几条。大多数程序...

阮一峰 ⋅ 2009/10/08 ⋅ 0

常用的几个查找命令

使用locate命令,遇到了这样的情况: 当前目录下有一个文件,而使用这个命令时却查找不到这个文件,上网查了一下,找到了原因,就在下面。 1. find find是最常见和最强大的查找命令,你可以用...

zhangyujsj ⋅ 2015/10/14 ⋅ 0

Linux 查找命令

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

大苹果 ⋅ 2011/03/24 ⋅ 0

Atitit.软件guibuttonand面板---os区-----linux windows搜索文件 目录

Atitit.软件guibuttonand面板---os区-----搜索文件 1. Find 1 2. 寻找文件夹 1 3. 2. Locate// everything 1 4. 3. Whereis (windows马这个映射的方法) 2 5. 4. Which// everything+path 2 6......

技术mix呢 ⋅ 2017/10/12 ⋅ 0

linux的五个查找命令

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

nothingfinal ⋅ 2012/08/30 ⋅ 0

linux文件搜索命令

1.查找执行文件() which用于从系统的PATH变量所定义的目录中查找可执行文件的绝对路径。比如说想查找passwd这个命令在系统中的绝对路径,使用方法如下: 使用whereis也能查到其路径,但是和w...

go4it ⋅ 2016/11/21 ⋅ 0

Linux:Linux查找及压缩

1.文件的查找命令 2.不同文件的查找方法 3.查找命令的横向比较 4.文件的压缩命令 文件的搜索命令 which:which及whereis仅能查找$PATH路径下的文件,也就是平时可以执行命令的位置,按照alias...

MLGKO ⋅ 2015/10/15 ⋅ 0

linux 学习笔记七

来自实验楼的学习笔记,文字基本复制,粘贴。 linux命令.gif 下载了一个录制gif图的软件,还不错 参考与:在Linux(Ubuntu)下超好用的录屏gif软件!!安装教程 一些有用的命令 which命令 which ...

东风冷雪 ⋅ 2017/11/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部