我正在尝试将一堆文件移动到一个新目录中," archive"然后压缩所有这些文件,并将zip重命名为" DD-MM-YYYY-DD-MM-YYYY",其中第二个DD-MM-YYYY比第一个DD-MM-提前7天 - YYYY。
这是我到目前为止所做的,
CURRDATEforARCHIVE=`date +%Y-%m-%d`
mv /Source/path /Destination/path/inbound/
mv /Destination/path/inbound /Destination/path/$CURRDATEforARCHIVE
cd /Destination/path/
zip -r $CURRDATEforARCHIVE.zip $CURRDATEforARCHIVE
rm -rf /Destination/path/$CURRDATEforARCHIVE
mkdir /Source/path/inbound
但我认为我的实施相当笨重,不是很干净。是否有更多"精简"实现它的方式?
答案 0 :(得分:0)
实现第二个日期的最简单方法是使用date -d
和相对时间偏移量。只需创建第二个变量:
#!/bin/sh
CURRDATEforARCHIVE=`date +%Y-%m-%d`
FUTUREforARCHIVE=`date -d "now + 7 days" "+%Y-%m-%d"`
echo "file_${CURRDATEforARCHIVE}-${FUTUREforARCHIVE}.zip"
<强>输出强>
$ sh sevendays.sh
file_2015-07-12-2015-07-19.zip
您还应该在删除源代码之前验证您是否成功创建了zip
文件:
zip -r "$CURRDATEforARCHIVE.zip" "$CURRDATEforARCHIVE"
if [ -f "$CURRDATEforARCHIVE.zip" ] then
rm -rf "/Destination/path/$CURRDATEforARCHIVE"
else
printf "error: zip file creation failed '%s'\n" "$CURRDATEforARCHIVE.zip"
fi
注意:始终"quote"
您的变量以防止文件名中的空格等。