Linux 基础(1)—— Linux上传/下载文件
Linux基础(2)—— Linux常用的查询命令
Linux基础(3)—— Linux进程的相关操作
不知你们是否经常遇到这种情况,跑了一个进程或docker容器,想知道输出文件在哪,试了which指令和whereis指令都没用,所以我决定看看这几种指令有什么差别。
1、which(查看可执行文件的位置)
2、whereis(查看文件的位置)
whereis命令只能用于程序名的搜索,并且只搜索二进制文件 (参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。
和find相比,whereis查找的速度非常快,这是因为linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用 whereis和下面即将介绍的locate时,会从数据库中查找数据, 而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。
但是该数据库文件并不是实时更新,默认情况下时每星期更新一次,因此,我们在用 whereis 或 locate 查找文件时,有时会找到已经被删除的数据,或者刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。
locate指令我不常用,就不介绍了,重点介绍find指令。前面几种不记得也没关系,用find指令可以得到相同的结果,只是效率更低,得到的返回条数更多。
3、find(实际搜寻硬盘查询文件名称)
查找文件或文件夹的位置
# 查找文件名为hbl_data1的绝对路径
find / -name hbl_data1 # 在整个ROOT目录下查找文件,也就是在整个硬盘上查找文件,查找速度较慢
find /var -name hbl_data1
find /var/lib -name hbl_data1
# 都能得到结果/var/lib/docker/volumes/hbl_data2
如果输入以上查找命令后系统并没有显示出结果,不要以为系统没有执行find / -name hbl_data1命令,而可能是你的系统中没有安装Apache服务器,这时只要你安装了ApacheWeb服务器,然后再使用find / -name httpd.conf就能找到这个文件了。
下面是一些不常用的指令
find / -size 1500c # 查找在系统中大小为1500bytes的文件
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 # 查找在系统中最后24小时里修改过的文件
find / -nouser # 查找在系统中属于作废用户的文件
find / -user fred # 查找在系统中属于FRED这个用户的文件