Linux删除指定后缀名文件的命令

本文介绍了一种使用find和exec命令结合rm命令批量删除指定目录下特定后缀名文件的方法,通过具体示例详细解释了各参数的作用,如从当前目录开始递归查找、按名称查找以.exe结尾的文件、确定查找类型为文件、输出查找结果并执行删除操作。

删除指定后缀名的文件

find . -name '*.exe' -type f -print -exec rm -rf {} \;

  •  "."    表示从当前目录开始递归查找
  •   -name '*.exe' 根据名称来查找,此命令表示要查找指定路径下以.exe结尾的文件
  •   -type f 表示查找的类型为文件
  •  -print 输出查找的文件目录名
  •  最后是-exec,后边跟着要执行的命令,表示对find出来的文件或目录执行此命令。 exec后面跟随着要执行的命令或脚本,此处rm -rf表示删除动作,然后是一对{},一个空格和一个\,最后一个分号

 

Linux 系统中删除特定后缀名文件,可以使用 `find` 命令结合 `rm` 命令实现。这种方式能够灵活地查找并删除指定目录及其子目录下的所有匹配文件。 ### 删除特定后缀名文件 #### 使用 `find` 和 `rm` 命令组合 如果要删除某个目录(例如 `/path/to/dir`)下及其子目录中的所有 `.txt` 文件,可以使用以下命令: ```bash find /path/to/dir -type f -name "*.txt" -exec rm -f {} \; ``` - `-type f`:确保只匹配普通文件- `-name "*.txt"`:查找以 `.txt` 结尾的文件- `-exec rm -f {} \;`:找到每个文件后执行 `rm -f` 命令强制删除[^2]。 #### 仅删除当前目录下的文件(不递归) 如果只需要删除当前目录下的文件而不处理子目录,则可以添加 `-maxdepth` 参数: ```bash find /path/to/dir -maxdepth 1 -type f -name "*.txt" -exec rm -f {} \; ``` - `-maxdepth 1`:限制搜索深度为当前目录级别。 #### 使用 `xargs` 实现批量删除 另一种方式是通过 `xargs` 提高删除效率,适用于大量文件的情况: ```bash find /path/to/dir -type f -name "*.txt" | xargs rm -f ``` - `xargs rm -f`:将多个文件一次性传递给 `rm -f` 进行删除,减少系统调用次数。 #### 示例:删除当前目录下所有 `.o` 文件 如果想删除当前目录及子目录下的所有 `.o` 文件,可以使用如下命令: ```bash find . -type f -name "*.o" -exec rm -f {} \; ``` 此命令会从当前目录(`.`)开始递归查找并删除所有 `.o` 文件[^3]。 --- ### 注意事项 - **谨慎使用 `-exec` 和 `rm -f`**:该操作不会提示确认,且无法恢复已删除文件- **避免误删根目录文件**:建议使用 `--preserve-root` 参数防止对根目录进行递归操作[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值