如何tar我的脚本命名的目录?

我正在编写一个脚本来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/