如何使用 bash 脚本备份目录

How do I backup a directory using bash script

我在尝试将 'my_work' 目录备份到目标 'Backup' 目录时遇到困难。我试过 运行 脚本,但它似乎不起作用。这是我写的脚本:

#!/bin/bash

SRCDIR="/home/student/Documents/my_work/"
DESTDIR="/home/student/Backups/"
FILENAME=backup1-$(date +%-Y%-m%-d)-$(date +%-T).tgz 
tar --create --gzip --file=$DESTDIR $FILENAME $SRCDIR

这是我收到的输出:

tar: backup1-201576-10\:24\:17.tgz: Cannot stat: No such file or directory
tar: Removing leading '/' from member names
tar (child): /home/student/Backups/: Cannot open: Is a directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

我似乎找不到解决办法,请帮忙

只需对您的脚本进行细微更改:

改变

tar --create --gzip --file=$DESTDIR $FILENAME $SRCDIR

tar --create --gzip --file=$DESTDIR$FILENAME $SRCDIR

注意 $DESTDIR$FILENAME 之间没有 space。要抑制 tar: Removing leading '/' from member names,您可以使用 -P flag cautiously.

此外,最好用下划线或破折号替换文件名中的冒号。冒号是保留字符,也在 PATH 中使用,可能会引起混淆。