linux文件查找命令(学习笔记)

来源:互联网 发布:云计算技术是什么 编辑:程序博客网 时间:2024/06/07 01:58

liunx文件的查找命令分为五种

分别是:which、whereis、locate、find、grep


which:查找可执行文件,搜索某个系统命令的位置,并且返回第一个搜索结果,按照alias ->$path的顺序查找

命令的使用:$ which grep

whereis:只能用于程序名的搜索,搜索一个可执行工具及其相关配置、帮助。

命令的使用:$ whereis grep

locate:locate命令其实是”find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。

命令的使用:
$ locate /etc/sh (搜索etc目录下所有以sh开头的文件)

$ locate ~/m (搜索用户主目录下,所有以m开头的文件)

$ locate -i ~/m (搜索用户主目录下,所有以m开头的文件,并且忽略大小写)

find:find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件,并作出相应的处理

命令选项:

-user :根据文件拥有者来寻找文件
-group:根据文件所属组来寻找文件
-name:根据文件名来寻找文件
-perm:根据文件权限来寻找文件
-size:根据文件大小来寻找文件
-type:根据文件的类型来寻找文件(c、b、l、f、d)

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

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

命令的使用:
$ find . -name ‘my*’ (搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件)

$ find . -name ‘my*’ -ls (搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息)

grep:是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

. 匹配任意一个字符
* 匹配0 个或多个*前的字符
^ 匹配行开头
$ 匹配行结尾
[ ] 匹配[ ]中的任意一个字符,[]中可用 - 表示范围,
例如[a-z]表示字母a 至z 中的任意一个
\ 转意字符

命令中的选项为:
-b 显示块号
-c 仅显示各指定文件中包含模式的总行数
-i 模式中字母不区分大小写
-h 不将包含模式的文件名显示在该行上
-l 仅显示包含模式的文件名
-n 显示模式所在行的行号
-s 指定文件若不存在或不可读,不提示错误信息
-v 显示所有不包含模式的行

命令的使用:
$ grep ‘test’ d* (显示所有以d开头的文件中包含test的行)

$ ls -l | grep ‘^public’ (通过管道过滤ls -l输出的内容,只显示以public开头的行)

$ grep -i ‘is good’ good.h heder.c (显示在good.h和heder.c文件中匹配“is good”的行,忽略大小写)

不同文件的查找方法
比方说在linux中有两个类似的文件,想找出其中不同的部分

现在有两个文件aaa.txt和bbb.txt
aaa.txt文件的内容是:
1
2
3
4
5
bbb.txt文件的内容是:
3
4
5
6
7

在终端输入命令:
vimdiff aaa.txt bbb.txt
comm aaa.txt bbb.txt
diff aaa.txt bbb.txt

都可以查看到

0 0
原创粉丝点击