which, whereis, locate, find
一、which命令
1. 命令格式
2. 命令功能
which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
二、whereis命令
1. 命令格式
whereis [-bmsu] [BMS 目录名 -f ] 文件名
2. 命令功能
whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。whereis 程序还具有搜索源代码、指定备用搜索路径和搜索不寻常项的能力。
3. 命令参数
-b 定位可执行文件。
-m 定位帮助文件。
-s 定位源代码文件。
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
-B 指定搜索可执行文件的路径。
-M 指定搜索帮助文件的路径。
-S 指定搜索源代码文件的路径。
4. 常用范例
实例1:将和文件相关的文件都查找出来
命令:whereis svn
三、locate命令
1. 命令格式
locate [选择参数] [样式]
2. 命令功能
locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在 执行loacte时直接找该索引,查询速度会较快。
3. 命令参数
-e 将排除在寻找的范围之外。
-f 将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案 放在资料库中。
-q 安静模式,不会显示任何错误讯息。
-n 至多显示 n个输出。
-r 使用正规运算式 做寻找的条件。
-o 指定资料库存的名称。
-d 指定资料库的路径
四、find命令
1. 命令格式
find pathname -options [-print -exec -ok …]
2. 命令功能
用于在文件树中查找文件,并作出相应的处理
3. 命令参数
pathname: find命令所查找的路径
-print: find命令将匹配的文件输出到标准输出
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command {} \;’
-ok: 和-exec的作用相同,执行命令前给出提示
4. 命令选项
-name: 按文件名查找
-perm: 按文件权限查找
-prune: 使find命令不在当前指定的目录中查找
-mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
f - 普通文件。
另外,下面三个的区别:
-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后n*24小时访问的文件
-cmin n 查找系统中最后N分钟被改变文件状态的文件
-ctime n 查找系统中最后n*24小时被改变文件状态的文件
-mmin n 查找系统中最后N分钟被改变文件数据的文件
-mtime n 查找系统中最后n*24小时被改变文件数据的文件
5. 常用范例
实例一:查找指定时间内修改过的文件
命令: find -atime -2
(查找48小时内修改的文件)
实例二:根据关键字查找
命令: find . -name log*
1 | qjchen@ubuntu:~$ find . -name log* |
实例三:按照目录或文件的权限来查找文件
命令: find . -perm 777
1 | qjchen@ubuntu:~/Desktop/shell_code/testdst$ sudo chmod 777 * |
实例四:按类型查找
命令: find . -type f -name log*
实例五:查找当前所有目录并排序
命令: find . -type d | sort
实例六:按大小查找文件
命令: find . -size +1000c -print