Ubuntu查找文件,2.find/-na


一、参考资料

在ubuntu中搜索文件或文件夹的方法
Ubuntu 常用查找文件与文件内容指令

二、具体方法

1. whereis+文件名

用于程序名的搜索,搜索结果只限于二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s),如果省略参数,则返回所有信息。

2. find / -name +文件名

find是在指定的目录下遍历查找,如果目录使用 / 则表示在所有目录下查找,find方式查找文件消耗资源比较大,速度也慢一点。

格式含义
find -name filename在根目录中寻找名字为filename的文件
find -name s在目录里面搜索带有s的文件
find -name *s在目录里面搜索以s结尾的文件
find -name s*在目录里面搜索以s开头的文件
find -amin -10在系统中搜索最后10分钟访问的文件
find -atime -2查找在系统中最后48小时访问的文件
find -mmin -5查找在系统中最后5分钟修改过的文件
find -mtime -1查找在系统中最后24小时修改过的文件
# 模糊查询
sudo find / -iname "*opencv*"

# 全局搜索关键字
find / -name "*.*" | xargs grep -l instances

3. locate+文件名

sudo updatedb  
locate eigen3

linux会把系统内所有的文件都记录在一个数据库文件中,使用locate+文件名的方法会在linux系统维护的这个数据库中去查找目标,相比find命令去遍历磁盘查找的方式,效率会高很多,比较推荐使用这种方法。

因为该数据库默认是一天更新一次的,所有使用locate命令有可能找不到最近新建的文件。这时就需要手动更新数据库,命令很简单,直接在终端中输入sudo updatedb就可以进行更新,更新速度还是比较快的,所以在搜索文件的时候建议使用locate命令。

4. which+可执行文件名

which的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which指令会在环境变量$PATH设置的目录里查找符合条件的文件,所以基本的功能是寻找可执行文件

5. grep

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。通过使用find与grep使我们能够更好地找到文件中的关键字。

# 查找所有包含 timersub关键字的文件
find / -name '*' | xargs grep 'timersub'

# 借助 grep -r 只搜索子目录的内容就能够避免提示
find / -name '*' | xargs grep -r 'timersub' -v "权限不够"
find / -name '*' | xargs grep -r 'timersub' -v "Permission denied"

# 在根目录 / 下查找cpuinfo文件
find / -name cpuinfo | xargs grep -r -v "Permission denied"

find / -name cudnn_version.h 2>&1 | grep -v "权限不够"
2>&1:将结果重定向到标准输出中

# 删除文件名含有 “-unaligned.apk” 的文件
find / -name "*-unaligned.apk" | xargs rm -rf

相关内容