我输入的命令
$ tar -f "backup_$(date +%D).tar.gz" -czv test2
命令的结果
tar (child): backup_02/22/25.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
我不明白我做错了什么。我试图创建一个名为 backup 的备份,并指定备份日期。但它说它不存在。好吧,当然它不存在。这就是我想做的 - 让它存在。我从我的文档文件夹中包含了两个测试文件。请指点迷津。
错误消息显示文件名为:
backup_02/22/25.tar.gz
也就是说,它包含斜杠 - 斜杠在 Linux 和其他类 Unix 系统上始终被视为路径分隔符。(它们没有转义字符;它们始终是路径分隔符。)因此,您要求“tar”创建的是:
并且出现错误消息,因为该目录
backup_02/22/
尚不存在,因此在您先“mkdir”它之前无法创建文件(目录不是隐式创建的)。使用不同的日期格式,例如
%m_%d_%Y
,02_22_25
或%F
(2025-02-22
%Y-%m-%d),这对于备份很方便,因为您可以按名称对文件进行排序。(当然,您可以保留当前格式和
mkdir -p
必要的目录,但我认为按月分组备份、按年分组备份是不切实际的。)