Extglob - 移动所有不在模式中但保留特定文件的文件

时间:2018-01-22 04:57:07

标签: bash extglob

假设我有一个名为 / folder1 / 的文件夹,其中包含以下文件:

file.txt
log-2018-01-22.log
log-2018-01-21.log
log-2018-01-20.log

我想转移/folder2/所有与.log不同的文件,除了file.txt。由于今天为2018-01-22(在我的时区),因此我只想在log-2018-01-22.log中保留file.txt/folder1

我正在使用的脚本(如下所示)并不像{I}那样将file.txt保留在/folder1/中,而是将其视为不是&#的文件之一39;使用当前日期定位.log并将其移至/folder2/

shopt -s extglob
currentDate=$(date +"%Y-%m-%d")
mv /folder1/!(*$currentDate.log) /folder2/

我可以在!($d.log)部分更改任何内容以使命令忽略file.txt吗?

1 个答案:

答案 0 :(得分:2)

我建议:

mv /folder1/!(log-$currentDate.log|file.txt) /folder2/