如何通过 cron 作业移动文件并为其名称附加时间戳?
How can I move a file and append a timestamp to its name via cron job?
我有一个文件 CBD_DATA.zip
存在于目录中:/home/cbd_dev/CBD_DATA.zip
。我想将它移动到目录 /home/sundaram_srivastava/archives/
为 CBD_DATA_{DateTimeStamp}.zip
.
我试过使用 cron 作业:
* * * * * mv /home/cbd_dev/CBD_DATA.zip /home/sundaram_srivastava/archives > /home/sundaram_srivastava/archives/CBD_DATA_`date +\%d\%m\%y`.zip
上面的 cron 作业的问题是它将文件 CBD_DATA.zip
移动到另一个同名目录,然后创建另一个文件 CBD_DATA_110620
.
现在,文件 CBD_DATA_110620
为 0 KB。所以,在目标目录中,我有两个文件,CBD_DATA.zip
和 CBD_DATA_110620
,但我只想要一个,它不应该是空的。
我应该在我的 cron 代码中更改什么?
首先,我会尝试在没有 cron 作业的情况下自行找出命令。你正在做的是这样的(为了便于阅读,缩短了目录路径):
mv /foo/CBD_DATA.zip /foo/archives > /foo/archives/CBD_DATA_`date +%d%m%y`.zip
这会移动文件,然后创建一个新的空文件; mv
命令没有输出,重定向也没有要重定向的内容,因此带有日期戳的文件为空。
mv
命令的第二个参数是新位置本身;如果它是一个目录,文件名保持不变,但如果它不是一个目录,它被解释为新名称。您不需要任何重定向。
mv /foo/CBD_DATA.zip "/foo/archives/CBD_DATA_$(date '+%d%m%y').zip"
我已将命令替换中已弃用的反引号替换为 $(...)
并引用了扩展。旁注:如果您可以选择日期戳格式,我强烈建议您改用 +%F
(或 %Y%m%d
),以便按时间顺序排序。
使用你的路径并逃脱了一个 cron 作业(你真的想要每分钟 运行 这个吗?):
* * * * * mv /home/cbd_dev/CBD_DATA.zip "/home/sundaram_srivastava/archives/CBD_DATA_$(date +\%d\%m\%y).zip"
我有一个文件 CBD_DATA.zip
存在于目录中:/home/cbd_dev/CBD_DATA.zip
。我想将它移动到目录 /home/sundaram_srivastava/archives/
为 CBD_DATA_{DateTimeStamp}.zip
.
我试过使用 cron 作业:
* * * * * mv /home/cbd_dev/CBD_DATA.zip /home/sundaram_srivastava/archives > /home/sundaram_srivastava/archives/CBD_DATA_`date +\%d\%m\%y`.zip
上面的 cron 作业的问题是它将文件 CBD_DATA.zip
移动到另一个同名目录,然后创建另一个文件 CBD_DATA_110620
.
现在,文件 CBD_DATA_110620
为 0 KB。所以,在目标目录中,我有两个文件,CBD_DATA.zip
和 CBD_DATA_110620
,但我只想要一个,它不应该是空的。
我应该在我的 cron 代码中更改什么?
首先,我会尝试在没有 cron 作业的情况下自行找出命令。你正在做的是这样的(为了便于阅读,缩短了目录路径):
mv /foo/CBD_DATA.zip /foo/archives > /foo/archives/CBD_DATA_`date +%d%m%y`.zip
这会移动文件,然后创建一个新的空文件; mv
命令没有输出,重定向也没有要重定向的内容,因此带有日期戳的文件为空。
mv
命令的第二个参数是新位置本身;如果它是一个目录,文件名保持不变,但如果它不是一个目录,它被解释为新名称。您不需要任何重定向。
mv /foo/CBD_DATA.zip "/foo/archives/CBD_DATA_$(date '+%d%m%y').zip"
我已将命令替换中已弃用的反引号替换为 $(...)
并引用了扩展。旁注:如果您可以选择日期戳格式,我强烈建议您改用 +%F
(或 %Y%m%d
),以便按时间顺序排序。
使用你的路径并逃脱了一个 cron 作业(你真的想要每分钟 运行 这个吗?):
* * * * * mv /home/cbd_dev/CBD_DATA.zip "/home/sundaram_srivastava/archives/CBD_DATA_$(date +\%d\%m\%y).zip"