我正在使用macOS,创建一个Bash脚本。
我在一些/path/to/inc/
文件夹中有这些文件:
./lorem-ipsum.php
./dolor-sit.amet.php
./config-prod.php
./enqueue.php
./config.php
./setup.php
./config-uat.php
./config-some-other-thing.php
现在,我想获取名称为config*.php
的文件,并删除它们 ,将其命名为config-prod.php
,因此该文件夹结束看起来像这样:
./lorem-ipsum.php
./dolor-sit.amet.php #Still here
./config-prod.php
./enqueue.php
./config.php #Removed
./setup.php
./config-uat.php #Removed
./config-some-other-thing.php #Removed
有什么方法可以使用find
或类似的方法吗?
答案 0 :(得分:6)
您可以使用extended globs:
$ shopt -s extglob
$ echo config!(-prod).php
config-some-other-thing.php config-uat.php config.php
并使用
删除文件rm config!(-prod).php
!(pattern)
匹配除 pattern
之外的所有内容。
答案 1 :(得分:-2)
我在linux上进行过测试:
find . ! -name 'config-prod.php' -type f -exec rm -f {} \;