我正在制作一个 bash 文件来删除 java 在 src 文件夹及其子文件夹中生成的所有 .class 文件。结构是:
project
src
/utils
utils.class
/game
game.class
gameManager.class
因此,当我在文件夹内执行脚本时project
,它会搜索所有.class
文件并删除它们,但它不起作用。
我刚刚创建了这个脚本:
find . -path "src/*/*" -name "*.class" -exec rm -f {} \;
我该如何修复它?
答案1
它不起作用,因为路径不会以 开头src
,而是以 开头./src
。
您的命令行可以更正为:
find . -type f -path "./src/*/*" -name "*.class" -exec rm -f {} \;
或者,
find . -type f -path "./src/*/*" -name "*.class" -delete
如果您愿意删除所有*.class
文件任何地方在src
(不仅仅是在其子目录中):
find src -type f -name "*.class" -delete
答案2
cd ./project/src && \
find . -name '*.class' -exec rm -f {} \;
没必要把简单的事情复杂化。