gpt4 book ai didi

linux - Shell 脚本 - tar 命令将存档名称误认为是目录

转载 作者:太空宇宙 更新时间:2023-11-04 11:58:41 25 4
gpt4 key购买 nike

我的 Shell 脚本,一个内脏的备份脚本在看似误认为我打算成为源目录的存档文件和给出一个输出声称我正在尝试创建一个空存档之间交替,我相信这意味着它仍在尝试使用存档名称作为来源。只有当我提供一个 shell 变量作为存档参数时才会发生这种情况,尝试使用常规字符串效果很好。

#!/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

谢谢

最佳答案

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

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

关于linux - Shell 脚本 - tar 命令将存档名称误认为是目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53310694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com