Bash使用昨天的日期重命名文件
我有一个今天日期为以下格式的文件:Bash使用昨天的日期重命名文件,bash,Bash,我有一个今天日期为以下格式的文件: testfile - 2014-10-07-08-01-30.CSV 我需要将文件重命名为: newone_2014-10-06.CSV 请注意,日期已更改为前一天 我每天都会用cron来运行它。 在bash脚本中如何执行此操作?您可以使用date命令: date命令支持指定相对时间戳,如-d'-1 day' 要重命名文件,请使用mv命令: 现在的上一个日期,或者文件名的上一个日期?为什么要将日期戳回滚到这样一个有日期的文件上?这里的情况如何?每天会有一个
testfile - 2014-10-07-08-01-30.CSV
我需要将文件重命名为:
newone_2014-10-06.CSV
请注意,日期已更改为前一天
我每天都会用cron来运行它。
在bash脚本中如何执行此操作?您可以使用date命令:
date命令支持指定相对时间戳,如-d'-1 day'
要重命名文件,请使用mv命令:
现在的上一个日期,或者文件名的上一个日期?为什么要将日期戳回滚到这样一个有日期的文件上?这里的情况如何?每天会有一个文件包含当前日期。为什么?我们真的从客户那里得到过这些问题的答案吗???为什么会被否决?只有在08:01:30创建文件时才有效。不是很稳定…@hek2mgl有一个很好的观点。如果您知道只有一个文件具有该日期/时间戳,那么使用glob实际上可能比拼写时间戳更好,因为glob无论如何只会扩展到一个文件。我不认为它是安全的,但它的行为可能更可预测/更稳定。例如:mv testfile-$date+%Y-%m-%d'-*.CSV或-08-*.CSV
filename=$(date -d "-1 day" +'%Y-%m-%d')
mv -v old_file_name "testfile - $(date -d "-1 day" +'%Y-%m-%d').CSV"
mv "testfile - $(date +'%Y-%m-%d')-08-01-30.CSV" "newone_$(date -d '-1 day' +'%Y-%m-%d').CSV"