Linux操作命令学习笔记(五)

find 命令

find 命令提供了相当多的查找条件,主要作用是沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作。

        (1)格式:find [选项] [搜索路径] [表达式]

默认路径是当前目录,默认表达式为-print。

表达式可能由下列成份组成:操作符、选项、测试表达式以及动作。

        (2)常用参数:

-printfind 命令将匹配的文件输出到标准输出
-execfind 命令对匹配的文件执行该参数所给出的 shell 命令
-name按照文件名查找文件
-iname按照文件名查找文件(忽略大小写)
-type查找某一类型的文件
-prune使用这一选项可以使 find 命令不在当前指定的目录中查找,如果同 时使用-depth 选项,那么-prune 将被 find 命令忽略
-user按照文件属主来查找文件
-group按照文件所属的组来查找文件
-mtime -n +n按照文件的更改时间来查找文件,-n 表示文件更改时间距现在小于 n天,+n 表示文件更改时间距现在大于 n 天,find 命令还有-atime 和 -ctime 选项

或者使用以下代码查看其它命令

find --help

 或者查看 https://www.gnu.org/software/findutils/ 中的文档,有更详细的信息。

        (3)示例:

显示的数据很多,需要手动停止( 按Ctrl + z)

打印当前目录下的文件目录列表 :

find  .  -print

 打印当前目录下所有以.txt 结尾的文件名:

find  .  -name "*.txt" -print

打印当前目录下所有以.txt 或.pdf 结尾的文件名:

find  .  \( -name "*.pdf" -or -name "*.txt" \) 

打印当前目录下所有不以.txt 结尾的文件名:

find  .  ! -name "*.txt"

 怎么根据文件类型、权限、所有者及操作符来查找匹配文件呢?

根据文件类型来查找文件,使用-type 选项,根据文件权限查找文件,使用-perm 选项,所有者使用-user 选项。

常见文件类型如下:

块设备文件
c字符设备文件
d目录
f普通文件
l符号链接

find 命令也可以通过逻辑操作符来创建更复杂的逻辑关系。

find 命令的逻辑操作符如下:

 打印当前目录下 root 用户拥有的所有文件:

find  .  -type f -user root

 打印当前目录下所有以.txt 结尾的符号链接:

find  .  -type l -name "*.txt" -print

打印当前目录下所有权限为 777 的 php 文件(web 服务器上的 php 文件一般需要执行权限):

find  .  -type f -name "*.php" -perm 777

打印当前目录下权限不是 777 和 664 的所有文件,可以使用如下命令:

find  .  -type f  \( ! -perm 777  -and  ! -perm 644 \)

 怎么使用 find 命令的-exec 选项来实现对查找到的文件执行指定的动作命令呢?

find 命令中 -exec 完整语法:

find /path -name "*.txt" -exec ls -l {} \;

find -exec 是 Linux/Unix 中用于对搜索到的文件执行操作的强大工具,核心要点如下:

{} 是占位符,会被替换为每个匹配的文件名。

\; 是必须转义的结束符(每个文件单独执行命令)。

+ 可代替 \; 提高效率(一次性传递多个文件)。

安全用法:建议用 -- 防止文件名被误解析为参数,如 -exec cmd -- {} +。

常见用途:批量删除、修改权限、查找内容等。

交互模式:可用 -ok 代替 -exec 进行逐条确认。

查找到所有的 c 语言代码文件,然后将这些文件内容写入到一个文件中,并下载该文件:

find . -name "*.c" -exec cat {} \; > all.c

本文参考每天一个linux命令目录 - peida - 博客园,感谢博主,每天学习,继续努力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值