我正在编写一个练习 bash 脚本,它将文件夹保存为 tar 存档,名称为 date-foldername.bak
当未格式化的日期作为文件名的一部分插入时,脚本会失败,所以2022-05-09-work没问题,但默认的日期输出Mon 9 May 18:24:36 BST 2022将产生:
tar: Cannot connect to Mon 9 May 18: resolve failed
Run Code Online (Sandbox Code Playgroud)
在这种情况下“解决失败”是什么意思?
这是代码:
#!/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."
Run Code Online (Sandbox Code Playgroud)
Kam*_*ski 63
来自man 1 tar[强调我的]:
\n\n\n
-f,--file=ARCHIVE使用归档文件或设备
\nARCHIVE。[\xe2\x80\xa6]包含冒号的存档名称指定远程计算机上的文件或设备。冒号前面的部分作为机器名或IP地址,后面的部分作为文件或设备路径名 [\xe2\x80\xa6]
\n\n
--force-local存档文件是本地的,即使它有冒号。
\n
中有冒号Mon 9 May 18:24:36 BST 2022。tar“认为”Mon 9 May 18是一个机器名称,它尝试解析它。这失败了。使用--force-local。
请注意,这种格式的日期不方便排序(并且不易解析)。如果这说服您更改格式,请记住您可以首先创建不带冒号的格式。man 1 date详情请参阅。
| 归档时间: |
|
| 查看次数: |
11471 次 |
| 最近记录: |