我有以下命令(有效):
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
。
我怎样才能做到这一点?
答案 0 :(得分:1)
拆分以获得更好的可读性:
SELECT n.*, nmax.cnt
FROM notifications n JOIN
(SELECT item_id, MAX(id) as max_id, COUNT(item_id) as cnt
FROM notifications
GROUP BY item_id
) nmax
ON n.item_id = nmax.item_id AND nmax.id = nmax.max_id
WHERE n.uid = 3 AND n.seen = 0 -- removed the single quotes because these are probably numbers
ORDER BY n.id DESC;
重要的部分:
for f in /home/backups/*;
do mv -n "$f" "${f}_$(date -d "$(date -r "$f") -1 days" +'%Y%m%d')";
done
From $(date -d "$(date -r "$f") -1 days" +'%Y%m%d')
:
-d, - date = STRING
显示时间由STRING描述,而不是'现在'
此处man date
将是STRING
报告的最后修改时间。
date -r "$f"
从日期中减去一天,格式为- 1 days
<小时/> 复印和粘贴的单行:
%Y%m%d