最近有开发小哥咨询了一个问题,问题挺简单不过挺实用,记录一下分享给有需要的朋友。
问题如下:
Linux服务器文件忘记具体路径了,如果检索?
我说:简单!一、文件查找
通过文件名查找
- find /目录 -name ‘*.log’ //查找某目录下以”.log”结尾的文件,注意元字符*必须使用单引号括起来
通过文件大小查找
- find /目录 -size +1G //查找某目录下大于1G的文件
通过修改时间查找
- find /目录 -type f -mtime -7 //查找某目录下7天内修改过的文件, -type f 定义查找类型为普通文件。
查找文件并做相应处理
- find /目录 -size +1G -exec rm {} \; \\寻找某目录下大于1G的文件并删除,此命令删除文件不会提示,确保删除正确文件find /目录 -size +1G -ok rm {} \; \\与上一条相同,但是会提示是否删除,更安全find /目录 -size +1G -print0 |xargs -0 rm {} \\与 exec 相同,加上 -print0 和xargs -0 是为了确保文件中空格,引号等无法处理
注:exec 与xargs 差别为前者参数为一个一个传递的,能处理特殊字符。后者参数为一次性传递需加特定参数处理特殊字符。
二、文件名快速查找
locate -i ftp //查找包含ftp关键字的文件和目录,-i为忽略大小写locate /etc/sh //查找/etc/下以sh开头的文件或目录
注:locate 命令使用系统自带的搜索数据库/var/lib/locatedb,因此查找文件比find -name 要快很多。该数据库每天更新一次,因此当天变更需要使用updatedb命令手动更新数据库。
三、定位可执行文件
- whereis grep //查找grep命令的man信息文件,命令绝对路径和源代码
注:whereis 与locate一样依赖/var/lig/locatedb 进行查找,当天变更使用updatedb更新
which grep //查找程命令绝对路径type grep //检索命令文件是否为shell内置命令,不是则显示绝对路径。如命令有别名则会显示别名。
以上内容,大家可以收藏起来,那天有需要可以快速用起来!
觉得本文有用,请转发、点赞或点击“在看”聚焦技术与人文,分享干货,共同成长更多内容请关注“数据与人”