使用Bash删除除具有特定格式的文件以外的所有文件

使用Bash删除除具有特定格式的文件以外的所有文件,bash,Bash,我一直在尝试使用上面的命令删除目录中除.py文件以外的所有文件 这是可行的,但我也希望对子目录应用同样的方法 如何工作?您可以使用globstar和extglob shopt-s globstar extglob: 你试过GLOBIGNORE=*.py*/*.py的顺序吗?find~/Downloads-type f-not-name*.py-delete? cd ~/Downloads/ GLOBIGNORE=*.py rm -v * unset GLOBIGNORE rm **/!(*.p

我一直在尝试使用上面的命令删除目录中除.py文件以外的所有文件

这是可行的,但我也希望对子目录应用同样的方法


如何工作?

您可以使用globstar和extglob shopt-s globstar extglob:


你试过GLOBIGNORE=*.py*/*.py的顺序吗?find~/Downloads-type f-not-name*.py-delete?
cd ~/Downloads/
GLOBIGNORE=*.py
rm -v *
unset GLOBIGNORE
rm **/!(*.py)