我的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
谢谢
答案 0 :(得分:0)
文件名中不能包含/
,因为它们是目录分隔符。更改日期格式以使用不同的定界符。
DATETIME=$(date +'%y-%m-%d-%H_%M_%S')