linux - 删除特定文件并保留一些
问题描述
所以我有一个包含这些.js和.yml文件的目录和一个名为config的文件夹
pogi@gwapo-pah:~$ ls
index.cat.js
index.bird.js
index.dog.js
index.monkey.js
function.yml
config
我想执行一个单行 bash 命令来执行这些
查找“index.dog.js”是否存在,如果不存在则退出
查找“index.dog.js”是否存在,如果存在则仅删除其他 *.js 文件并保留index.dog.js、function.yml和文件夹配置
如果命令成功,则文件夹中的文件将如下所示:
index.dog.js
function.yml
config
到目前为止,我尝试过这些,但是我无法继续缺少的逻辑
if [ -f index.dog.js ] ; then echo 'exists' ; fi
解决方案
shopt -s extglob
[[ -f index.dog.js ]] && rm !(index.dog).js
推荐阅读
- c++ - 将向量拆分为向量数组
- android - 世博会应用程序访问位置,但从不使用
- json - 在flutter_form_builder中的FormBuilderRadioGroup中显示复杂的json
- swift - 是什么导致了 observeSingleEvent 而不是 .observe(DataEventType.value?
- bert-language-model - NER的deeppavlov训练一直失败
- sql - 我的 SQlite 太慢而无法返回某些东西,有没有办法让它更快?
- python - (Discord.py)我为用户提供角色的命令不起作用
- python - 使用 ElementTree 修改 Flask 上的 XML 请求
- laravel - Laravel CSRF 处理第二个(第三个等)ajax 请求
- sql - SQL获取一天中的第一个和最后一个小时