2 如何重命名文件以匹配当前(舍入)时间。如果是例如10:55或11:05那么我想将其重命名为11。 像这样的东西: mv file.txt file_`date +%H`.txt 但是如上所述的舍入。 谢谢 linux macos bash terminal console — 墙裙 source
2 hour=$(date +%H);[[ $(date +%M) -ge 30 ]]&&let hour++;[[ $hour = 24 ]]&&hour=0;hour=$(printf %02d $hour);for f in *.txt;do mv "$f" "${f%.txt}_$hour.txt";done — LRI source printf:`%02':缺少格式字符 — Dado 2013年 @Dado这个错误意味着你忘了指定它看起来什么格式,在这种情况下,你需要一个d后%02...(可能太晚提到这一点,但在任何情况下将其添加通过搜索找到这个) — mason81
0 你试图将时间缩短到最接近的3600秒。 一般来说,为了圆形,添加半个单位,然后截断到该单位; 这很容易使用整数除法(除以单位并丢弃余数,然后乘以单位 - 这将总是截断,即向下舍入,但请记住,您已经添加了半个单位)。 HOUR=$(date -d @$(( ( $(date +%s) + 1800 ) / 3600 * 3600 )) +%H) mv "file.txt" "file_${HOUR}.txt" — 加布 source
0 在Mac OS X上(BSD日期): mv file.txt file_$(date -v +30M +%H).txt 在Linux上(GNU日期): mv file.txt file_$(date '+30min' +%H).txt 两者都做同样的事情:打印当前时间的小时值+ 30分钟。 — RICI source