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"