第一章 目录及文件操作 unix常用命令( 五 )



有c 选项,则文件字节长度为 n 则真

-atime n 若文件的最近访问时间为 n 天前则为真,

find 命令将改变其访问的目录的访问时间

-mtime n 若文件的最近修改时间为 n 天前则为真

-ctime n 若文件状态为 n 天前改变则为真

-exec 命令 { }; 若命令返回值为0则真,{ }内为命令参数,

此命令必须以 ; 为结束

-ok 命令 { }; 与 exec 相同,只是在命令执行前先提示,若

回答 y 则执行命令

-print 显示输出使表达式为真的文件名

-newer 文件 若文件的访问时间比newer 指定的文件新则真

-depth 先下降到搜索目录的子目录,然后才至其自身

-mount 仅查找包含指定目录的文件系统

-local 文件在当前文件系统时为真

-type c 文件类型为 c 则真,c 取值可为 b(块文件) c (字符文件)

d(目录) l (符号链接) p (命名管道) f (普通文件)

( 表达式 ) 表达式为真则真

-links n 文件链接数为 n 时为真

-user 用户 当文件属于用户时为真,用户可用数字表示UID

-nouser 当文件不属于 /etc/passwd 中的一个用户时为真

-group 文件组 当文件属于文件组时为真,文件组可用数字表示GID

-nogroup 当文件不属于 /etc/group 中的一个组时为真

-fstype 类型 当文件所属文件系统类型为指定类型时真

-inum n 当文件 i 节点号为 n 时为真

-prune 当目录名与模式匹配时,不再搜索其子目录

可以用逻辑操作符将简单表达式连接成复杂表达式

逻辑操作符有 ! 表示非操作,-o 表示或操作,两个表达式并列则表示

与操作

[例子]:

find / -name find* -print

从根目录开始搜索文件名如 find* 的文件并显示之

find ./ -exec sleep{1}; -print

每秒显示一个当前目录下的文件

find $HOME (-name a.out -o -name "*.o" ) -atime7 -exec rm {} ;

从$HOME目录开始搜索,删除所有文件名为a.out 或 *.o 且访问时间在7天前的文件





1.25 grep



[语法]: grep [选项] 模式 [文件...]

[说明]: 在指定的文件中搜索模式,并显示所有包含模式的行,模式是一个正规表达式,在使用正规表达式时,最好将其引在单引号(") 中,若指定文件为缺省,则使用标准输入,正规表达式可以是:

. 匹配任意一个字符

* 匹配0个或多个*前的字符

^ 匹配行开头

$ 匹配行结尾

[] 匹配[ ]中的任意一个字符,[]中可用 - 表示范围,

例如[a-z]表示字母a 至z 中的任意一个

转意字符

命令中的选项为:

-b 显示块号

-c 仅显示各指定文件中包含模式的总行数

-i 模式中字母不区分大小写

-h 不将包含模式的文件名显示在该行上

-l 仅显示包含模式的文件名

-n 显示模式所在行的行号

-s 指定文件若不存在或不可读,不提示错误信息

-v 显示所有不包含模式的行

[例子]:

grep "good" * 在所有文件中搜索含有字符串 good 的行

grep "^myline" mytext 在文件mytext中搜索行首出现myline字符串的行





1.26 vi



[语法]:vi [-wn] [-R] 文件...

[说明]: vi 是一个基于行编辑器 ex 上的全屏幕编辑器,可以在vi 中使用 ex,ed的全部命令,vi选项中 -wn 指将编辑窗口大小置为n行,-R 为将编辑的文件置为只读模式,vi 工作模式分为命令模式和输入模式,一般情况下在命令模式下,可敲入vi命令,进入输入模式下时可以编辑要编辑的文本,命令 a A i I o O c C s S R 可进入输入模式,在输入模式下按 ESC 键可推出输入模式,回到命令模式,在命令模式中敲入:命令,则可进入ex方式,在屏幕底部出现提示符 : ,此时可使用任意ex命令,屏幕底行也用来作/ ? ! 命令的提示行,大多数命令可以在其前面加数字,表示命令执行的重复次数,下面简单介绍一下vi 的命令集,^ 表示(CTRL)键

推荐阅读