linux命令学习(10)—— find -type

本文介绍Linux中find命令的-type选项,用于根据文件类型进行搜索。包括f(普通文件)、l(符号链接)、d(目录)、c(字符设备)、b(块设备)、s(套接字)。举例说明如何查询所有空文件夹:`find -type d -empty`。

linux命令学习(10)—— find -type


根据文件类型进行搜索
### 使用 `find` 命令的 `-type f` 和 `-type d` 选项 在 Linux 或 Unix 系统中,`find` 是一个功能强大的工具,用于基于特定条件搜索文件和目录。通过使用 `-type` 选项,可以限定搜索结果的类型。以下是关于 `-type f` 和 `-type d` 的详细说明: #### 搜索普通文件 (`-type f`) 要仅查找普通文件(即非目录、非符号链接等),可以在 `find` 命令中加入 `-type f` 参数。这将确保返回的结果只包含常规文件。 例如,要在当前目录及其子目录中找到所有普通的 `.txt` 文件,可以运行如下命令: ```bash find . -type f -name "*.txt" ``` 这条命令的作用是从当前位置开始递归遍历整个目录树,并找出扩展名为 `.txt` 的所有普通文件[^1]。 #### 查找目录 (`-type d`) 如果目的是定位某些特定名称或者属性的目录而不是文件,则应选用参数 `-type d` 来指示 find 只考虑目录项。 比如想查看根分区下是否存在名字叫做 logs 的各个日志存储位置,可以用下面这个例子展示的方法来做: ```bash find / -type d -name "logs" 2>/dev/null ``` 这里的 `2>/dev/null` 部分是用来忽略可能产生的权限不足而导致的标准错误输出信息[^3]。 以上两个基本用法可以帮助快速筛选出符合条件的目标对象——无论是单独文档还是整组资料夹结构都能轻松应对! ```python import os from pathlib import Path def search_files(directory, pattern): results = [] for path in Path(directory).rglob(pattern): # rglob is recursive globbing similar to find . if path.is_file(): results.append(str(path)) return results directory = '/path/to/search' pattern = '*.py' # Example of searching Python scripts found_files = search_files(directory, pattern) print("\n".join(found_files)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a1809032425

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值