gpt4 book ai didi

linux - 如何在 Linux 上将包含当前日期的文件名减去 1 天

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:34:49 26 4
gpt4 key购买 nike

我有以下命令(有效):

for f in /home/backups/*; do mv -n "$f" "${f}_$(date -r "$f" +'%Y%m%d')"; done

例如:在 /home/backups 中,我有文件 backup。执行重命名为 backup_20180608(当前日期)的命令。

我希望减去 1 天。我的意思是文件应该是 backup_20180607

我怎样才能做到这一点?

最佳答案

拆分以获得更好的可读性:

for f in /home/backups/*;
do mv -n "$f" "${f}_$(date -d "$(date -r "$f") -1 days" +'%Y%m%d')";
done

重要部分:

$(date -d "$(date -r "$f") -1 days" +'%Y%m%d')

From 约会对象:

-d, --date=STRING

display time described by STRING, not 'now'

此处 STRING 将是 date -r "$f" 报告的最后修改时间。

- 1 days 从日期中减去一天,格式为 %Y%m%d


用于复制和粘贴的一行:

for f in /home/backups/*; do mv -n "$f" "${f}_$(date -d "$(date -r "$f") -1 days" +'%Y%m%d')"; done

关于linux - 如何在 Linux 上将包含当前日期的文件名减去 1 天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50767475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com