微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Linux基础命令之: Linux常用命令

Linux基础命令之: Linux常用命令

时间:08-13 来源:3721RD 点击:

在文件命令中经常会使用pattern正则表达式,它是可以描述一类字符串的模式(Pattern),如果一个字符串可以用某个正则表达式来描述,就称这个字符和该正则表达式匹配。这和DOS中用户可以使用通配符"*"代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行"搜索-替换"操作等。

正则表达式的主要参数有如下

· \:忽略正则表达式中特殊字符的原有含义;

· ^:匹配正则表达式的开始行;

· $:匹配正则表达式的结束行;

· <:从匹配正则表达式的行开始;

· >:到匹配正则表达式的行结束;

· [ ]:单个字符,如[A]即A符合要求;

· [-]:范围,如[A-Z],即A、B、C一直到Z都符合要求;

· 。:所有的单个字符;

· *:所有字符,长度可以为0。

9.find

(1)作用。

在指定目录中搜索文件,它的使用权限是所有用户。

(2)格式。

find [路径][选项][描述]

其中的路径为文件搜索路径,系统开始沿着此目录树向下查找文件。它是一个路径列表,相互用空格分离。若缺省路径,那么默认为当前目录。

其中的描述是匹配表达式,是find命令接受的表达式。

(3)常见参数。

[选项]主要参数如表2.19所示。

表2.19 find选项常见参数列表

选 项

参 数 含 义

-depth

使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容

-mount

不在其他文件系统(如Msdos、Vfat等)的目录和文件中查找

[描述]主要参数如表2.20所示。

表2.20 find描述常见参数列表

选 项

参 数 含 义

-name

支持通配符*和?

-user

用户名:搜索文件属主为用户名(ID或名称)的文件

-print

输出搜索结果,并且打印

(4)使用实例。

[root@localhost test]# find ./ -name hello*.c

./hello1.c

./iscit2005/hello2.c

在该实例中使用了-name的选项支持通配符。

(5)使用说明。

n 若使用目录路径为"/",通常需要查找较多的时间,可以指定更为确切的路径以减少查找时间。

n find命令可以使用混合查找的方法,例如,想在/etc目录中查找大于500000字节,并且在24小时内修改的某个文件,则可以使用-and(与)把两个查找参数链接起来组合成一个混合的查找方式,如"find /etc -size +500000c -and -mtime +1"。

10.locate

(1)作用。

用于查找文件。其方法是先建立一个包括系统内所有文件名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。因此其速度比find快很多。

(2)格式。

locate [选项]

(3)locate主要选项参数如表2.21所示。

表2.21 locate命令常见参数列表

选 项

参 数 含 义

-u

从根目录开始建立数据库

-U

在指定的位置开始建立数据库

-f

将特定的文件系统排除在数据库外,例如proc文件系统中的文件

-r

使用正则运算式做寻找的条件

-o

指定数据库的名称

(4)使用实例。

[root@localhost test]# locate issue -U ./

[root@localhost test]# updatedb

[root@localhost test]# locate -r issue*

./ARM_TOOLS/uClinux-Samsung/lib/libpam/doc/modules/pam_issue.sgml

./ARM_TOOLS/uClinux-Samsung/lib/libpam/modules/pam_issue

./ARM_TOOLS/uClinux-Samsung/lib/libpam/modules/pam_issue/Makefile

./ARM_TOOLS/uClinux-Samsung/lib/libpam/modules/pam_issue/pam_issue.c

实例中首先在当前目录下建立了一个数据库,并且在更新了数据库之后进行正则匹配查找。通过运行可以发现locate的运行速度非常快。

(5)使用说明。

locate命令所查询的数据库由updatedb程序来更新,而updatedb是由cron daemon周期性建立的,但若所找到的档案是最近才建立或刚改名的,可能会找不到,因为updatedb默认每天运行一次,用户可以由修改crontab配置(etc/crontab)来更新周期值。

11.ln

(1)作

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top