Shell脚本-tar comand将目录的归档名称错误

时间:2018-11-15 00:16:34

标签: linux bash

我的Shell脚本,一个混乱的备份脚本,在看似错误地将我打算作为源目录的存档文件与提供我声称试图创建一个空存档的输出之间切换,我认为这意味着它仍在尝试使用存档名称作为源。仅当我提供shell变量作为archive参数时,尝试常规字符串才能正常工作。

#!/bin/bash

DATETIME=$(date +'%y/%m/%d-%H_%M_%S')
SRC='/home/benny/test/'
DST='backups'
GIVENAME='benny-backup'
ARCHIVE="$GIVENAME-$DATETIME.tar.gz"

echo $DATETIME
echo $SRC
echo $ARCHIVE

tar -zcvf $ARCHIVE  $SRC 
# if tar -zcvf archive.tar.gz" $SRC; the

以下是代码的输出:

18/11/15-00_10_02
/home/benny/test/

tar: Cowardly refusing to create an empty archive
Try 'tar --help' or 'tar --usage' for more information.

这是我在修改上述代码之前仅使用通过连接两个初始变量而创建的一个变量的输出:

18/11/15-00_12_51
/home/benny/test/

tar: Removing leading `/' from member names
tar (child): : Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
/home/benny/test/
/home/benny/test/price.txt

谢谢

1 个答案:

答案 0 :(得分:0)

文件名中不能包含/,因为它们是目录分隔符。更改日期格式以使用不同的定界符。

DATETIME=$(date +'%y-%m-%d-%H_%M_%S')