五大搜索命令学习
分别解释locate,find,which,whereis,grep 五大linux搜索命令
locate
解释:由man手册可以看出,locate查找就是根据文件名进行查找,只是依赖于updatedb命令。该命令更新linux中的查找数据库/var/lib/locatedb
这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用
locate之前,先使用updatedb命令,手动更新数据库。
find
解释:find命令在文件系统中根据给定的约束条件进行查找,返回搜索结果
与时间有关的选项:-atime。 -ctime 。-mtime 。
-mtime -n +n 按文件更改时间来查找文件,-n指n天以内,+n指n 天以前
-atime -n +n 按文件访问时间来查找文件,-n指n天以内,+n指n 天以前
-ctime -n +n 按文件创建时间来查找文件,-n指n天以内,+n指n 天以前
例:
-newer file :file 为一个存在的档案,列出比 file 还要新的档案档名
-amin -n 查找系统中最后N分钟访问的文件
-atime -n 查找系统中最后n*24小时访问的文件
-cmin -n 查找系统中最后N分钟被改变文件状态的文件
-ctime -n 查找系统中最后n*24小时被改变文件状态的文件
-mmin -n 查找系统中最后N分钟被改变文件数据的文件
-mtime -n 查找系查找系统中最后n*24小时被改变文件数据的文件
总结:min是分钟,time是小时,a访问,c改变状态,m改变数据。
-name 按照文件名查找文件
-perm 按照文件权限来查找文件
-user 按照文件属主来查找文件
-group 按照?文件所属的组来查找文件。?
-nogroup 查找无有效所属组的文件,即该文件所属的组在/ etc/groups中不存在
-nouser 查找无有效属主的文件,即该文件的属主在/etc/ passwd中不存在。
-newer file1 ! file2 查找更改时间比文件file1新但比文 件file2旧的文件。
-type 查找某?一类型的?文件
示例:
1.查找当前目录下文件名为code的目录
find . -name code -print
./code
2.在目录中查找更改时间在5日以前的文件并删除它们:
find -atime +5 -exec rm {} ;
3.查找当前所有目录并排序
find / -type d |sort
4.查找所有目录名称中按照”.log”结尾的目录
find / -type d -name "*.log"
5.查找系统中最近5天访问的文件
find -atime -5
6.查找系统中最近5分钟访问的目录
find -amin -5
7. 查找当前目录下所有权限为755的文件,并设置成777
find . -perm 755 -exec chmod 777 {} ;
grep
解释:grep 从文件中查找包含匹配字符的串,可用正则
grep [选项] [文件]
eg : grep "test*" ./test.txt
whersis
解释:查找可执行程序,二进制文件等的路径
eg whereis ls
which
解释:查找一个可执行命令的路径
eg : which ls