首页 > 解决方案 > 删除特定文件并保留一些

问题描述

所以我有一个包含这些.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.jsfunction.yml和文件夹配置

如果命令成功,则文件夹中的文件将如下所示:

index.dog.js
function.yml
config

到目前为止,我尝试过这些,但是我无法继续缺少的逻辑

if [ -f index.dog.js ] ; then echo 'exists' ; fi

标签: linuxbash

解决方案


shopt -s extglob
[[ -f index.dog.js ]] && rm !(index.dog).js

推荐阅读