`tar: 无法连接到...: 解析失败` 是什么意思?

`tar: 无法连接到...: 解析失败` 是什么意思?

我正在编写一个练习 bash 脚本,将文件夹保存为名为 date-foldername.bak 的 tar 存档

当未格式化的日期作为文件名的一部分插入时,脚本会失败,所以2022-05-09-work没问题,但默认日期输出Mon 9 May 18:24:36 BST 2022将产生:

  tar: Cannot connect to Mon  9 May 18: resolve failed

在这种情况下,“解决失败”是什么意思?

代码如下:

#!/bin/bash

# Scrit accepts a folder name to back up as an parameter
# It saves the folder as a tar archive with the name date-foldername.bak 

echo "Beginning backup."
d=$(date)
echo "Today's date is $d"
tar --create --verbose --file="$d-$1.bak" "$1"
echo "Backup complete."

答案1

man 1 tar[强调我的]:

-f--file=ARCHIVE

使用存档文件或设备ARCHIVE。[…]

带有冒号的档案名称指定远程计算机上的文件或设备。冒号前面的部分作为机器名或IP地址,冒号后面的部分作为文件或设备路径名[…]

--force-local

即使存档文件带有冒号,它也是本地的。

中有冒号Mon 9 May 18:24:36 BST 2022tar“认为”Mon 9 May 18是机器名称,它会尝试解析它。这会失败。使用--force-local

注意,这种格式的日期排序不方便(而且不容易解析)。如果这说服您更改格式,请记住您可以首先创建不带冒号的格式。请参阅man 1 date以了解详细信息。

答案2

格式化您的日期以免破坏 tar。

date +"%Y-%m-%d"

会工作。

相关内容