用 extglob 做否定通配

用 !(模式) 与 @(a|b) 等扩展模式筛选文件名。

macOSBash 脚本Shell脚本低风险
运行 shopt -s extglob,再用 ls !(*.log) 列出除日志外的所有文件。

01命令

命令
$ shopt -s extglob; ls !(*.log)

02作用说明

扩展通配为普通通配增加否定和分组,按扩展名筛选目录无需管道。它是 shell 原生的精确选文件方式,适合批量操作,文件对话框难以表达。

03风险

风险低风险
使用条件macOS default zsh/bash (bash 3.2+; some features need bash 4+ via Homebrew)
系统兼容性macOS with bash 3.2+ (GNU bash 4+ via Homebrew for advanced features)
!注意: 使用前必须启用 extglob,且某些 shell 中与其他模式选项不兼容。

04撤销

✓无需撤销——该命令不会改变持久状态。

05来源

最后验证: 2026-10-13 · 分类: 开发者