【发布时间】:2021-11-03 15:30:26
【问题描述】:
我在一个目录中有以下文件:
2021_08_26.txt
2021_09_2.txt
2021_08_25.txt
2021_08_27.txt
其中我想根据文件名删除超过 8 天的文件。为此任务编写了以下脚本。
#!/bin/bash
f8days=$(date +%F --date="-8 days")
for file in 20*
do
if [[ $file -gt $f8days ]]
then
rm -rf "$file"
fi
done
但是在运行我的脚本时,我遇到了下面提到的错误:
./old-log-delete.sh: line 6: [[: 2021_08_25: value too great for base (error token is "2021_08_25")
./old-log-delete.sh: line 6: [[: 2021_08_26: value too great for base (error token is "2021_08_26")
./old-log-delete.sh: line 6: [[: 2021_08_27: value too great for base (error token is "2021_08_27")
./old-log-delete.sh: line 6: [[: 2021_09_2: value too great for base (error token is "2021_09_2")
这个错误的原因和可能的解决方案是什么?
【问题讨论】:
-
-gt只比较整数,不比较字符串。使用>。