使用 "find" 删除 .js 文件并维护 .min.js 文件

Using "find" remove .js files and maintain .min.js files

有这个文件夹(它是一个缩小的例子):

js/
- folder/
    test.js
    test.min.js
    - inner folder/
        nice.js
        nice.min.js
- another_folder/
    hello.js
    hello.min.js
config.js
config.min.js

我想删除 .js 文件(并保留 min.js 文件)。这将是我想要的输出:

js/
- folder/
    test.min.js
    - inner folder/
        nice.min.js
- another_folder/
    hello.min.js
config.min.js

如何使用 find 实现此目的?

出乎意料,未经测试:

#!/bin/bash

find . -type f -name "*.min.js" |
  while read path
  do
    other="${path%.min.js}.js"
    rm -v "$other"
  done
find . -iname '*.js' ! -iname '*.min.js'

输出

./js/another_folder/hello.js
./js/folder/inner folder/nice.js
./js/folder/test.js
./config.js

要删除这些文件,您只需将它们通过管道传输到 rm

find . -iname '*.js' ! -iname '*.min.js' -exec rm -f {} +