在Shell中,find
命令用于在指定目录下查找文件或目录;可以按照文件名、文件类型、文件大小、权限、时间等条件来查找文件。
以下是一些常用的find命令选项和表达式:
-name
:按照文件名查找-type
:按照文件类型查找-size
:按照文件大小查找-perm
:按照文件权限查找-mtime
:按照文件修改时间查找下面是一些find命令的例子(find命令遍历查找,效率低):
#1.查找当前目录下所有以".txt"为后缀的文件:
find . -name "*.txt"
#2.查找指定目录下以".log"为后缀的文件,并删除它们:
find /path/to/directory -name "*.log" -exec rm {} \;
#3.查找当前目录下大于1MB的文件:
find . -size +1M
#4.查找指定目录下所有属主为"root"的文件:
find /path/to/directory -user root
#5.查找当前目录下所有大于10天未被访问的文件:
find . -atime +10
在shell中,locate
命令用于在系统中快速定位文件路径。它通过搜索数据库来查找文件,因此比使用find
命令更快速。
-i
:忽略大小写,进行大小写不敏感的搜索。-c
:仅显示匹配的文件数量,而不显示文件路径。-r
:使用正则表达式进行匹配。#1.显示系统中所有包含example.txt的文件路径
locate example.txt
#2.更新locate数据库
sudo updatedb
需要注意的是,locate
命令依赖于一个称为"locate数据库"的预建数据库,该数据库包含了系统中所有文件和目录的信息。这个数据库通常会在系统中定期更新,以确保 locate
命令的搜索结果是最新的。
在Shell中,which
命令用于定位并显示指定命令的完整路径。它可以帮助用户确定在系统中可执行命令的位置。
#1.显示ls命令的完整路径,例如/bin/ls
which ls
which
命令在查找命令时会遍历系统的PATH环境变量指定的目录,然后返回找到的第一个匹配的命令路径。如果找不到指定的命令,which
命令将不会返回任何结果。
在shell中,whereis
命令用于定位指定命令的可执行文件、源代码文件以及帮助文档的位置。
-b
:查找命令的二进制程序的路径-m
:查找命令的man帮助手册的路径#1.显示ls命令的可执行文件、源代码文件和帮助文档的位置。
whereis ls