命令 | 说明 |
---|---|
which | 常用于查找可直接执行的命令。只能查找可执行文件,该命令基本只在$PATH路径中搜索,查找范围最小,查找速度快。默认只返回第一个匹配的文件路径,通过选项 -a 可以返回所有匹配结果 |
whereis | 不只可以查找命令,其他文件类型都可以(man中说只能查命令、源文件和man文件,实际测试可以查大多数文件)。在$PATH路径基础上增加了一些系统目录的查找,查找范围比which稍大,查找速度快。可以通过 -b 选项,限定只搜索二进制文件。 |
locate | 超快速查找任意文件。它会从linux内置的索引数据库查找文件的路径,索引速度超快。刚刚新建的文件可能需要一定时间才能加入该索引数据库,可以通过执行updatedb命令来强制更新一次索引,这样确保不会遗漏文件。该命令通常会返回大量匹配项,可以使用 -r 选项通过正则表达式来精确匹配。 |
find | 直接搜索整个文件目录,默认直接从根目录开始搜索,建议在以上命令都无法解决问题时才用它,功能最强大但速度超慢。除非你指定一个很小的搜索范围。通过 -name 选项指定要查找的文件名,支持通配符。 |
1、语法
which命令用于查找可执行文件,which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
which [文件...]
2、参数
-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息
3、示例
which ls
alias ls='ls --color=auto'
/usr/bin/ls
1、语法:
该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。
该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令
whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]
2、参数:
-b 只查找二进制文件。
-B<目录> 只在设置的目录下查找二进制文件。
-f 不显示文件名前的路径名称。
-m 只查找说明文件。
-M<目录> 只在设置的目录下查找说明文件。
-s 只查找原始代码文件。
-S<目录> 只在设置的目录下查找原始代码文件。
-u 查找不包含指定类型的文件。
1、语法
locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。
一般情况我们只需要输入 locate file_name 即可查找指定文件
locate [-d ][--help][--version][范本样式...]
2、安装
安装mlocate包
yum -y install mlocate
更新数据库
updatedb
3、参数
-d或--database= 配置locate指令使用的数据库。locate指令预设的数据库位于/var/lib/slocate目录里,文档名为slocate.db,您可使用 这个参数另行指定。
--help 在线帮助。
--version 显示版本信息。
4、示例
locate passwd
locate supervisor.conf
/etc/tmpfiles.d/supervisor.conf
1、语法
find path -option [ -print ] [ -exec -ok command ] {} \
说明:
path: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出,默认执行该命令。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
2、参数
-name filename #查找名为filename的文件
find -name april* #在当前目录下查找以april开始的文件
find -name april* fprint file #在当前目录下查找以april开始的文件,并把结果输出到file中
find -name ap* -o -name may* #查找以ap或may开头的文件
find /mnt -name tom.txt -ftype vfat #在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find /mnt -name t.txt ! -ftype vfat #在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
find /tmp -name wa* -type l #在/tmp下查找名为wa开头且类型为符号链接的文件
find /home -name tmp.txt -maxdepth 4 #列出/home内的tmp.txt 查时深度最多为3层
find /home -name tmp.txt -mindepth 3 #从第2层开始查
-user username #按文件属主来查找
find /home -user csdn #列出/home目录内属于用户csdn的文件或目录
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
find /home -mtime -2 #在/home下查最近两天内改动过的文件
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
参考链接:https://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.html
Linux命令大全:https://www.runoob.com/linux/linux-command-manual.html