You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过正则表达式匹配文件名批量对目录下文件执行gzip压缩

gzip 本身仅支持传入文件路径作为参数,不支持直接识别正则表达式做文件名匹配,你可以配合 find 工具实现需求,具体方法如下:

方法1:使用find命令(支持全功能正则匹配,可自由控制是否递归子目录)

find 内置正则匹配能力,还能直接调用gzip批量处理匹配到的文件,适配你给出的正则\b[^2\W]{2,}\b的示例命令如下:

find . -maxdepth 1 -type f -regextype posix-extended -regex '.*/\b[^2\W]{2,}\b' -exec gzip {} +

参数说明:

  • -maxdepth 1:仅查找当前目录,不递归遍历子目录,如有递归需求删除该参数即可
  • -type f:仅匹配普通文件,避免误处理目录、软链接等特殊文件
  • -regextype posix-extended:指定使用扩展正则语法,和通用正则规则兼容性更好
  • -regex '.*/\b[^2\W]{2,}\b':正则匹配规则,前缀.*/是为了匹配find返回的完整文件路径,再叠加你需要的文件名匹配规则
  • -exec gzip {} +:将所有匹配到的文件批量传递给gzip执行压缩,执行效率更高

方法2:简单匹配场景可使用shell glob

如果你的匹配规则比较简单,不需要用到单词边界等复杂正则语法,也可以开启shell的extglob选项后用通配符匹配:

# 先开启extglob选项
shopt -s extglob
# 示例:压缩所有文件名不含2的文件
gzip !(*2*)

注意:建议先执行如下命令打印匹配到的文件,确认符合预期后再执行压缩操作,避免误处理:

find . -maxdepth 1 -type f -regextype posix-extended -regex '.*/\b[^2\W]{2,}\b' -print

内容的提问来源于stack exchange,提问作者Nathan Dai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:09:03