extglob未启用时需先执行shopt -s extglob,启用后可用!(pattern)排除指定文件,如rm -f !(a.log|b.log|today.log),括号内用|分隔、不可有空格,操作前建议用echo预览或加-i交互确认。

先确认 extglob 是否已启用
执行 shopt extglob,若输出为 extglob off,说明未开启;若为 extglob on,可直接使用。未开启时运行:
shopt -s extglob
用 !(pattern) 精确排除保留目标文件
这是核心能力:!(a.log|b.log|today.log) 表示“匹配除括号内列出的所有文件名以外的文件”。注意:
• 括号内多个文件用竖线 | 分隔,不能有空格
• 必须在当前目录下操作,或配合 cd 切入日志目录
• 命令需搭配 rm 使用,例如:
rm -f !(current.log|archive.log)
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
批量按命名规则保留,比如只留“today”开头的日志
若日志统一以日期命名(如 20260519.log、20260518.log),而你只想保留当天的:
• 先获取今日日期字符串:today=$(date +%Y%m%d)
• 再执行删除(保留 today 变量值匹配的文件):
rm -f !(${today}.log)
• 若需保留多个格式(如带时分的 20260519_1430.log),可用通配组合:
rm -f !(${today}*.log)
安全清洗前务必加 -i 或先用 echo 验证
误删风险高,强烈建议:
• 用 echo !(pattern) 预览将被匹配的文件列表
• 加 -i 参数交互确认:rm -i !(today.log)
• 对重要目录,优先在测试子目录中验证命令逻辑
• 不要直接对根目录或 /var/log 等系统路径无保护执行










