查找文件——find命令
语法:find 搜索路径 匹配表达式
该命令用于在指定路径中查找符合条件的文件,搜索路径可以是多个目录,不同目录之间以空格分隔
(1)匹配表达式1
-name filename:要查找的文件名。可以使用通配符“*”、“?”,但要用双引号将文件名引起来
-user username 查找属于username用户的文件名
-group groupname 查找属于groupname组的文件名
-print 显示找到的文件路径名
例如:
在当前文件下查找以h为开头的文件
[root @localhost tmp]#find -name "h*" -print
(2)匹配表达式2
-exec命令{}:对找到的匹配文件,执行所列出的命令,而不询问用户是否执行这些命令,参数{}由find找到当前的文件路径取代,命令行末尾必须有“\;”.
-ok 命令{}:与-exec的用法相同,在执行命令前询问用户是否要执行命令
例如:
[root@localhost tmp]#find /home -user user1 -exec cat {};|more
找出目录下属于用户user1的所有文件并显示其内容
-user 选项常被用在要删除用账号之前的文件删除
例如:
[root@localhost tmp]#find /home -user user1 -exec rm -r{}\;
找出/home下属于用户user1的所有文件并删除
(3)匹配表达式三
-atime n:查找前n天访问过的文件(仅第n天这一天)
-atime+n 查找前n天之前访问过的文件;-n则表示前n天之后
例如:
[root @localhost tmp]#find /home -atime +365 -print
找出用户一年前访问过的文件
[user1 @localhost tmp]#find $HOME -user user1 -atime +3 -exec rm -r{}\;
找出用户user1主目录下属于自己的前三天之前访问过的文件并删除
[user1 @localhost tmp]#find $HOME -user user1 -atime +3 -exec ls -l -r{}\;
找出用户user1主目录下属于自己的前三天之前访问过的文件并以长格式显示属性
(4)匹配表达式4
-type filetype:指定查找的文件类型
Filetype可以是:b块文件;c字符设备文件;d目录文件;f一般文件;l符号链接文件
例如:
[root @localhost tmp]#find -type d -print
显示当前目录查找所有子目录
[root @localhost tmp]#find -type f -print
显示当前目录查找所有普通文件
(5)
匹配表达式5
-size Number 和 -size Number:按照文件大小进行查找。Number表示一字节为单位,否则以块为单位。-Number表示查找比该值小的文件,+Number查找比该值大的文件
例如:
[root @localhost tmp]#find -size -10 -print
在当前文件下查找比10块小的文件
[root @localhost tmp]#find -size -10 -print|ls -l
在当前文件下查找比10块小的文件并以长格式显示
[root @localhost tmp]#find -size +100 -size -200 exec ls -s {}\;
在当前目录下查找100~200块长的文件并显示文件的实际快数
查找文件——locate命令
语法:locate文件名【参数】
在文件正文中查找指定的字符串——grep命令
语法:grep[参数]查找模式 文件名[文件名]
Grep命令用于在指定文件中查找与模式匹配的行,并将匹配的行显示在标准输出至上
参数:
-c只显示匹配行的行数。
-i 匹配时不区分大小写,默认情况下匹配是区分大小写
-h在多个文件中查找时,输出行前不显示文件名
-n:在输出前加上匹配串所在行的行号
-v:只显示不包含匹配串的行