Linux初级阶段之常用命令:locate/find
locate命令
1. 命令格式:
locate [选择参数] [样式]
2. 命令功能:
locate命令其实为“find -name”的另一种写法,但比后者要快很多,原因在于它并不会搜索具体目录,而是搜索一个数据库(/var/lib/locatedb,每天自动更新,也可手动更新:updatedb);
3. 命令参数:
-l: 至多显示n个输出;
-d: 指定资料库的路径;
-e: 将排除在寻找的范围之外;
-r:使用正则表达式做寻找的条件;
4. 命令实例:
I: 查找和pwd相关的所有文件:locate pwd
ii: 搜索etc目录下所有以sh开头的文件:locate /etc/sh
find命令
1. 命令格式:
find pathname [-options] [-print -exec -ok]
2. 命令功能:
用于在文件树中查找文件,并作出相应的处理;
3. 命令参数:
pathname: find命令所查找的目录路径;
-print: find命令将匹配的文件输出到标准输出;
-exec: find命令对匹配的文件执行该参数所给出的shell命令,相应的命令形式为‘command’ {} \;;
-ok: 和-exec作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令;
4. 命令选项:
-name: 按照文件名来查找文件;
-perm: 按照文件权限来查找文件;
-prune: 使用这一项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略;
-user: 按照文件属主来查找文件;
-group: 按照文件所属的组来查找文件;
-mtime -n +n :按照文件的更改时间来查找文件,-n 表示文件更改时间距现在n天以内;+n表示文件更改时间距现在n天以前,同理还有-atime和-ctime选项;
-ngroup: 查找无有效所属组的文件,即文件所属的组在etc/groups中不存在;
-nuser: 查找无有效所属主的文件,即文件属主在etc/passwd中不存在;
-newer file1 ! file2: 查找更改时间比file1新但比file2旧的文件;
-type :查找某一类型的文件,比如b, d, c[字符设备文件], p, l, f ;
-size n :查找文件长度为n块的文件,带有c时表示文件长度以字节计;
-depth:查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找;
-fstype: 查找位于某一类型文件系统中的文件,这些文件系统类型通常在配置文件etc/fstab中;
-mount: 查找文件时不跨越文件系统mount点;
-follow: 如果find命令遇到符号链接文件,就追踪至链接所指向的文件;
-admin n :查找系统中最后N分钟访问的文件;
-cmin n: 查找系统最后N分钟改变文件状态的文件;
-mmin n :查找系统中最后N分钟改变文件数据的文件;
-atime n:查找系统中最后n*24小时访问的文件;
5. 使用实例:
i:按类型查找:find . -type f -name "*.log";
ii:查找当前目录所有目录并排序:find . -type d |sort;
iii: 查找当前目录大于1K文件:find -size +1000c -print ;