文件查找

echo命令可以查看变量PATH的值,其值被冒号分隔成7个字段,每个字段代表一个目录。使用which命令在环境变量PATH设置的目录中查找符合条件的命令文件,可查看其是否存在以及执行的位置。

从输出结果可以看出,useradd命令的位置为/usr/sbin/useradd,由于qfedu命令不在环境变量PATH中,显示该命令未找到。把PATH变量重新定义为/,此时输入任何命令都是从/这一级查找,查找ls命令显示不存在。

locate命令可以让用户快速查找到所需要的文件或目录。它不搜索全部数据信息,而是搜索数据库/var/lib/mlocate/mlocate.db。该数据库包含本地系统内所有文件名称及路径。系统会自动创建这个数据库,并且每天更新一次。在使用locate命令查找文件时,有时可以找到已经被删除的文件,但新创建的文件却无法查找到,原因是数据库文件没有被系统更新。为了避免上述情况,在使用locate命令之前可以先使用updatedb命令手动更新数据库。

与locate命令相比,find命令搜索速度较慢,它并不会索引目录,而是对整个目录进行遍历,这会占用很多系统资源。为了提高效率,建议在使用find命令时尽量在指定目录下进行搜索,以缩小查找范围。find命令可以根据文件名查找,例如,在/目录下查找ifcfg-ens33网卡文件,“*”符号为通配符,在不确定文件名称时可以使用。

如果已知文件的大概位置,建议提供可能存在的路径,用关键字逐渐缩小范围,从而提高查找效率。例如,在/etc、/usr、/home目录下搜索ifcfg-ens33文件,比直接从/目录查找该文件速度快。

find命令还可以根据文件大小查找,例如,在/etc目录下分别查找大于、等于、小于5MiB的文件。

find命令在不指定目录的层级时,会逐层地对文件系统进行搜索,查找效率低下。通过“-maxdepth”可以指定查找的目录深度。

find命令还可以根据时间查找(atime、mtime、ctime)。例如,查找修改时间距当前时间大于、等于、小于5天的文件,此处的5天是从修改的那一刻计算,共5×24小时,并非日期。

 

 

 

 

 

 

posted @ 2023-11-22 08:15  咩咩想吃雪糕  阅读(77)  评论(0)    收藏  举报