我正在尝试压缩目录,但我想将tar
文件名更改为具有当前日期。问题是tar
不接受:
#!/bin/bash
tar -cvjSf $(date +%d/%m/%y.%HH:%MM)home_backup.tar.bz2 /home
我想用bzip2制作一个带有实际日期的压缩文件,但不接受该名称。它只适用于我使用的简单名称:
#!/bin/bash
tar -cvjSf home.tar.bz2 /home
答案 0 :(得分:2)
不要将:
或/
放在tar文件的名称中。
尝试:
tar -cvjSf "$(date +%d-%m-%y.%HH.%MM)home_backup.tar.bz2" /home
注意:
在Unix中,/
表示目录。 $(date +%d/%m/%y.%HH:%MM)home_backup.tar.bz2
的扩展将包含两个/
,tar将要在指定的子目录中创建该文件。在上面的命令中,我们将/
替换为-
,并避免了问题。
tar
将:
之前的文件名部分视为远程主机的名称。由于您没有尝试将文件发送到远程主机,因此应从用于创建文件名的:
命令中删除所有date
。在上面的命令中,我们将:
替换为.
,并避免了问题。
上面的命令显示双引号内的tar文件的名称。使用上面显示的特定命令,这不是必需的。然而,使用双引号可以防止分词,这可以避免将来发生令人不快的意外。