使用 "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 {} +
有这个文件夹(它是一个缩小的例子):
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 {} +