❯ setopt extended_glob
❯ tree . -a
.
├── .config
├── b.txt
└── config
└── default.yml
1 directory, 3 files
❯ rm -r ^(b.txt|config)
❯ tree . -a
.
├── b.txt
└── config
└── default.yml
将删除当前目录下所有文件和目录,除了 b.txt
和 config
目录。
其中 setopt extended_glob
等同于 bash 中的 shopt -s extglob
另外,如果需要保留 dotfile,那么需要:
rm -r ^(b.txt|.config)(D)