linux - 如何在 Linux 上将包含当前日期的文件名减去 1 天
问题描述
我有以下命令(有效):
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')
来自 man date
:
-d,--日期=字符串
显示由 STRING 描述的时间,而不是“现在”
这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
推荐阅读
- java - 如何在 Hibernate 投影中映射嵌套集合
- html - 如何使用 xpath 通过搜索该元素旁边的文本来定位该元素
- c# - Unity c# - 在 VN 风格游戏中管理角色精灵/图像
- javascript - 如何使用 jQuery 上传多个 PDF 文件?
- html - 如果太大,将 div 的内容分成多列
- java - 当两者都启用 mTLS 时,Spring Cloud Config Client 和 Server 存在先有鸡还是先有蛋的问题?
- flutter - 无法在 Flutter Personal Expenses App 中本地保存
- python-3.x - 如何使两个相同的networkx图具有相同的节点顺序
- python - Soap 请求在 Soapui 中运行良好,但在 python 中运行良好 - ZEEP - SUDS
- android - 在本机反应中检测键盘语言(或其方向)