我正在编写一个脚本来tar一个目录,然后将压缩file upload到S3。 该目录是根据date,月份和年份命名的。 这是我的尝试:
TARNAME=`date --date="$(date +%Y-%m-15) -1 months" +' %B-%Y'` tar cvfz /tmp/$TARNAME.tar.gz /Drive_E/drive_i_bu/monthly/$TARNAME /usr/local/bin/aws s3 mv /tmp/$TARNAME.tar.gz s3://test-roger/
以上的作品,如果我没有做variables替代。 通过variables,我得到: tar: July-2016.tar.gz: Cannot stattar (child): /tmp/: Cannot open: Is a directory
此外,焦油似乎试图深入目录。 有任何想法吗? 再次,上述工作没有variables替代。 所以,这个问题不在AWS CLI工具中。
有一个空间$TARNAME到您的$TARNAME (见下文)。 这导致/tmp/和July-2016.tar.gz被tar视为单独的参数
echo /tmp/$TARNAME.tar.gz /tmp/ July-2016.tar.gz
如果你摆脱了这一点,事情应该如你所愿。 这似乎是由于空间的原因造成的
' %B-%Y'
介意白色空间:
tar cvfz /tmp/"${TARNAME}".tar.gz /Drive_E/drive_i_bu/monthly/"${TARNAME}" /usr/local/bin/aws s3 mv /tmp/"${TARNAME}.tar.gz" s3://test-roger/