linux find -maxdepth 和xargs 用法

xargs
之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:

这个命令是错误的
find /sbin -perm +700 |ls -l

这样才是正确的

find /sbin -perm +700 |xargs ls -l   


mindepth 和 maxdepth

在root目录及其子目录下查找passwd文件。

1# find / -name passwd
2./usr/share/doc/nss_ldap-253/pam.d/passwd
3./usr/bin/passwd
4./etc/pam.d/passwd
5./etc/passwd

在root目录及其1层深的子目录中查找passwd. (例如root — level 1, and one sub-directory — level 2)

1# find -maxdepth 2 -name passwd
2./etc/passwd

在root目录下及其最大两层深度的子目录中查找passwd文件. (例如 root — level 1, and two sub-directories — level 2 and 3 )

1# find / -maxdepth 3 -name passwd
2./usr/bin/passwd
3./etc/pam.d/passwd
4./etc/passwd

在第二层子目录和第四层子目录之间查找passwd文件。

1# find -mindepth 3 -maxdepth 5 -name passwd
2./usr/bin/passwd
3./etc/pam.d/passwd


### 关于Linux中的`find`命令 #### 基本语法 `find`是一个强大的文件查找工具,在指定目录下按照给定条件搜索文件。基本形式如下: ```bash find path expression ``` - `path`: 起始路径,可以是相对路径也可以是绝对路径。 - `expression`: 查找表达式,由选项测试条件组成。 #### 实际案例展示 为了更好地理解如何运用此命令,这里提供几个实用的例子: ##### 按名称查找文件 当需要定位特定名字的文件时,可采用 `-name` 参数来实现精确匹配或通配符模式匹配[^2]。 ```bash # 寻找当前目录及其子目录下的所有名为example.txt的文件 $ find . -name "example.txt" ``` ##### 结合最小最大深度参数限定范围内的文件检索 有时只关心某一层级间的资源,则可以通过设置最小(`-mindepth`) 最大 (`-maxdepth`) 层次来进行筛选[^4]. ```bash # 在第3层到第5层之间寻找叫做passwd的文件 $ find /root/testdir -mindepth 3 -maxdepth 5 -name "passwd" ``` ##### 执行操作于找到的结果之上 除了单纯显示符合条件的对象列表外,还可以利用 `-exec` 或者更高效的 `+` 符号让每一个命中项都执行某些指令. ```bash # 对查出来的txt文档逐一打印其内容 $ find . -type f -name "*.txt" -exec cat {} \; # 更高效的方式 $ find . -type f -name "*.txt" -print0 | xargs -0 cat ``` ##### 定位最近修改过的文件 如果想要获取近期内被改动过的内容,那么借助 `-mtime`, `-ctime` 可以轻松完成这项工作. ```bash # 列举过去7天内有变动的所有普通文件 $ find /home/user/documents -type f -mtime -7 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值