一、常见的文件搜索命令------find
- 命令所在路径:
/bin/find
; - 执行权限:所有用户;
- 功能描述:文件搜索;
- 语法:
find [搜索范围] [匹配条件]
(-name
:按文件名查找、-iname
:按文件名查找,文件名不区分大小写、-size
:按文件大小查找,大于+、小于-、等于=、-user
:按所有者查找、-group
:按所属组查找、-amin
:按访问时间查找、-cmin
:按文件属性查找、-mmin
:按文件内容查找、-type
:按文件类型查找、-inum
:按i节点查找,一般用来删除文件); - 范例:
$ find /etc -name init
(在目录/etc中查找文件名为init的文件)、$ find / size +204800
(在根目录下查找大于100MB的文件)、$ find . -user Anony
(在当前目录下查找所有者为Anony的文件)、$ find /etc -cmin -5
(在/etc目录下查找5分钟内被修改过属性的文件和目录); - 通配符:
$ find /etc -name init*
(查找文件名以init开头的文件,*匹配任意字符)、$ find /etc -name init???
(查找文件名以init开头,后面以任意三个字符结尾的文件,?匹配任意一个字符); - 关于文件大小:系统中最小存储单位是数据块,查找时应将文件大小换算成多少个数据块,
1数据块=512字节=0.5K
。 - 连接符:
$ find /etc -size +163840 -a -size -204800
(在/etc目录下查找大于80MB小于100MB的文件。-a
:两个条件同时满足、-o
:两个条件满足任意一个即可)、$ find /etc -name inittab -exec ls -l {} \;
(在/etc目录下查找inittab文件并显示其详细信息,-exec/-ok 命令 {} \;
:对搜索结果执行操作,-ok每次操作都会进行询问)。
二、常见的文件搜索命令------locate
- 命令所在路径:
/usr/bin/locate
; - 执行权限:所有用户;
- 功能描述:在文件资料库中查找文件(如果查找的文件在临时目录下,则查找失败);
- 语法:
locate 文件名
(linux严格区分大小写,-i
:不区分大小写); - 范例:
$ locate inittab
(查找速度比find快)、$ locate -i inittab
。
三、常见的文件搜索命令------which
- 命令所在路径:
/usr/bin/which
; - 执行权限:所有用户;
- 功能描述:搜索命令所在目录及别名信息;
- 语法:
which 命令
; - 范例:
$ which ls
。
四、常见的文件搜索命令------whereis
- 命令所在路径:
/usr/bin/whereis
; - 执行权限:所有用户;
- 功能描述:搜索命令所在目录及帮助文档路径;
- 语法:
whereis [命令名称]
; - 范例:
$ whereis ls
。
五、常见的文件搜索命令------grep
- 命令所在路径:
/bin/grep
; - 执行权限:所有用户;
- 功能描述:在文件中搜寻字符串匹配的行并输出;
- 语法:
grep -iv [指定字符串] [文件]
(-i
:不区分大小写、-v
:排除指定字符串); - 范例:
# grep mysql /root/install.log
(在install.log文件中搜寻有字符串mysql的行)、# grep -v ^# /root/install.log
(在install.log文件中排除以#开头的行)。