惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园_首页
M
MIT News - Artificial intelligence
月光博客
月光博客
WordPress大学
WordPress大学
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
The Cloudflare Blog
D
Docker
阮一峰的网络日志
阮一峰的网络日志
L
LangChain Blog
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
Vercel News
Vercel News
MyScale Blog
MyScale Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Martin Fowler
Martin Fowler
U
Unit 42
Stack Overflow Blog
Stack Overflow Blog
A
About on SuperTechFans
The Register - Security
The Register - Security
B
Blog
Recorded Future
Recorded Future
J
Java Code Geeks
Recent Announcements
Recent Announcements
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
F
Fortinet All Blogs
B
Blog RSS Feed
Project Zero
Project Zero
The Hacker News
The Hacker News
T
Threatpost
D
Darknet – Hacking Tools, Hacker News & Cyber Security
L
LINUX DO - 热门话题
Jina AI
Jina AI
宝玉的分享
宝玉的分享
云风的 BLOG
云风的 BLOG
AWS News Blog
AWS News Blog
G
Google Developers Blog
GbyAI
GbyAI
S
Securelist
T
Tenable Blog
博客园 - 【当耐特】
Security Latest
Security Latest
人人都是产品经理
人人都是产品经理
T
Tor Project blog
Latest news
Latest news
P
Proofpoint News Feed
T
The Blog of Author Tim Ferriss

Yee's Blog

腾讯云/轻量云 安装ArchLinux的个人记录 记录我的联想M720Q Arch Sway窗口管理器的安装和配置过程 Jenkins Linux安装 腾讯课堂、钉钉在线网课视频直播回放下载离线播放 Ceph块设备对RBD块设备操作LVM创建PV时报错 Ceph映射RBD块设备 2020年9月26日前端部门Vue考核 2020年9月26日后端部门Python考核 Nginx反向代理下载传输超过1G大文件时断开问题 Windows Server 2019 Datacenter M720q 安装记录 Ceph块设备基础及快照、克隆操作 从Ceph集群中删除OSD节点 Centos8配置 chrony NTP服务端及客户端 搭建Ceph集群 Ceph硬件准备 OSD与Pool池的常见操作及管理 Ceph用户管理 MacOS睡眠管理——让你的Mac睡的更香 初中古诗文必背篇目 Ansible 技巧之场 Ansible 包含和导入文件 Ansible 学习文档 Ansible 主机模式 Ansible 角色 Ansible 调整连接数 Splunk数据搜索和报表 Ansible 常用模块 Ansible 变量和事实 Ansible 任务控制 Ansible Playbook Ansible 基础概念 42Team-Flask框架-HTTP协议快速了解 42Team-Flask框架-路由和视图 42Team-Flask框架-请求与响应 42Team-Flask框架 42Team-Flask框架-Flask介绍 42Team-Flask框架-使用Pycharm来构建一个全新的Flask项目 How to install RHEL8(Centos) on Dell R710/R610 server Centos8安装Docker报错解决方案 Centos8安装Docker后容器内无法访问网络 Docker或Podman容器内无法解析DNS问题多种解决方案 使用NetworkManager来管理树莓派Ubuntu系统网络以及个人的体验优化 Linux 存储设备的挂载及识别 Firewalld 防火墙常用指令教程-常用规则(禁止Ping | 放行端口) Linux 守护进程和控制服务 Linux SSH远程访问 42Team小组_Linux基础培训课件 如何在AmazeUI中当改变select标签后触发Vue方法的问题 使用Docker部署安装WordPress博客平台 在Raspberry树莓派中搭建NFS存储服务器 在 树莓派 Linux 中搭建匿名 danted socks5 代理服务器 HTTP与HTTPS区别随笔 Bash/Shell学习笔记
Linux 查找系统中的文件
本文作者: YeeFire · 2020-02-21 · via Yee's Blog

查找系统中的文件

使用locatefind即可实现在挂载的文件系统中搜索文件。

  • 查找系统中的文件
    • locatefind介绍
      • locate命令
      • find命令
    • 根据名称查找文件locate
      • 常用选项
    • 使用find查找文件
      • 常用选项
        • -name选项:
        • -iname选项:
        • -user-group选项:

locatefind介绍

locate命令

locate命令是搜索预先生成的数据库中的文件名或文件路径,这份数据库正常是由cron计划任务每天自动更新,数据库默认位置在:

Ubuntu /var/cache/locate/locatedb

RHEL/var/lib/mlocate/mlocate.db

如果没有该数据库那么需要手动生成,使用管理员用户执行命令updatedb即可自动生成。

find命令

find是爬取整个文件系统来实时的搜索文件系统,所以搜索比较慢。如果是刚刚添加的文件使用find才能搜索到,因为locate需要等待下一次更新数据库后才能搜索的到新添加的文件。

根据名称查找文件locate

locate命令根据locatedb数据库文件进行搜索并返回文件名和路径,通过数据库查询搜索会非常的快,因此只在你眨眼的功夫你想要搜索的文件路径或名称就显示到你的眼前了。

以普通用户身份搜索条目时,调用locate搜索的用户必须对包含所匹配元素的目录树有读取的权限,否则是不会返回结果的。

在该账户有权限读取的目录树中,搜索名称或路径包含passwd的文件。

locate passwd   
/etc/cron.daily/passwd
/etc/pam.d/chpasswd
/etc/pam.d/passwd
/etc/passwd
/etc/passwd-
/etc/security/opasswd
/etc/sudoers.d/010_pi-nopasswd
...

即使文件名或目录包含匹配到的搜索,也会返回结果

locate image    
/home/pi/Tools/fuzzDicts/images
/home/pi/Tools/fuzzDicts/images/README.MD
/home/pi/Tools/fuzzDicts/images/api.jpg
/home/pi/Tools/fuzzDicts/images/directory.jpg
/home/pi/Tools/fuzzDicts/images/fileExt.png
/home/pi/Tools/fuzzDicts/images/parameter.jpg
/home/pi/Tools/fuzzDicts/images/password.jpg
/home/pi/Tools/fuzzDicts/images/sql.jpg

常用选项

-i选项:不区分大小写,对所有大小写字母的组合都会进行匹配。

-l选项:限制locate搜索结果的返回数量,实例如下,限制结果仅返回5个匹配项。

locate  -l 5 v2ray 
/etc/systemd/system/multi-user.target.wants/v2ray.service
/etc/systemd/system/v2ray.service
/etc/v2ray
/etc/v2ray/config.json
/home/pi/disk/v2ray_client.json

使用find查找文件

find命令在本地文件系统中实时的搜索,查找符合匹配条件的文件。使用find命令要求当前用户对要查看内容的目录有读取执行的权限。

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [starting-point...] [expression]

find命令有很多选项,使用这些选项可以对文件进行精确的搜索,比如通过时间戳、文件大小、修改时间等其他文件特性任意组合对文件进行查找和筛选。

常用选项

-name选项:

后面跟上文件名可以查找匹配所给的文件名的文件,并返回该文件的绝对路径。例如若要在文件系统的/根目录下搜索名为ssh_host_rsa_key的文件:

sudo find / -name "ssh_host_rsa_key"
/etc/ssh/ssh_host_rsa_key

还可以使用通配符搜索文件。使用通配符搜索时一定要将文件名用引号引起,防止当前使用的终端对通配符进行解析。

sudo find / -name "*.conf"   
/lib/modprobe.d/systemd.conf
/lib/modprobe.d/aliases.conf
/lib/modprobe.d/fbdev-blacklist.conf
/lib/systemd/system/rc-local.service.d/debian.conf
/lib/systemd/system/systemd-resolved.service.d/resolvconf.conf
/lib/systemd/system/systemd-timesyncd.service.d/disable-with-time-daemon.conf
/lib/systemd/system/user-.slice.d/10-defaults.conf
/lib/systemd/resolv.conf
...

-iname选项:

使用方式和-name选项一致,但使用-iname选项搜索时不区分大小写。并且同样支持通配符搜索文件。

-user-group选项:

可以通过文件的所有者和所有组来对文件进行搜索,-uid-gid也是用来限定文件所有权的选项。并且可以与其他选项如-name搭配使用。例如搜索用户为www所属的全部文件:

find / -user www 
/home/wwwroot/mail.yeefire.com
/home/wwwroot/blog.yeefire.com
/home/wwwroot/blog.yeefire.com/log.txt
/home/wwwroot/blog.yeefire.com/var
/home/wwwroot/blog.yeefire.com/var/Upgrade.php
/home/wwwroot/blog.yeefire.com/var/Typecho
...
sudo find / -user www -name "*yeefire.com"
/home/wwwroot/mail.yeefire.com
/home/wwwroot/blog.yeefire.com