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

Zsh教程:如何用通配符排除特定扩展名的文件

用ls列出不含.m2ts和.mp4扩展名的文件方法

下面分几种常用shell的实现方式:

Bash环境

Bash需要开启extglob扩展(大部分系统默认已开启,若未开启可先执行shopt -s extglob),然后用取反通配符:

ls !(*.m2ts|*.mp4)

这里的!()表示匹配不符合括号内模式的文件,刚好对*.(m2ts|mp4)做了取反。如果要包含隐藏文件,加上-A参数:

ls -A !(*.m2ts|*.mp4)

Zsh环境

Zsh原生支持更简洁的取反语法,直接用^符号:

ls ^*.(m2ts|mp4)

或者用~符号实现取反:

ls *~*.(m2ts|mp4)

要包含隐藏文件同样加-A:

ls -A ^*.(m2ts|mp4)

通用跨shell方法

如果不想区分shell,用ls配合grep是最稳妥的方式:

ls | grep -vE '\.(m2ts|mp4)$'
  • -v表示反向匹配(排除符合规则的内容)
  • -E启用扩展正则,\.(m2ts|mp4)$匹配以.m2ts或.mp4结尾的文件名
    要包含隐藏文件就加-A:
ls -A | grep -vE '\.(m2ts|mp4)$'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 16:42:51