使用bzip2将完整目录压缩到tar文件中,该文件的名称取决于当前日期

时间:2016-08-25 22:35:25

标签: bash compression syntax-error bzip2

我正在尝试压缩目录,但我想将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

1 个答案:

答案 0 :(得分:2)

不要将:/放在tar文件的名称中。

尝试:

tar -cvjSf "$(date +%d-%m-%y.%HH.%MM)home_backup.tar.bz2" /home

注意:

  1. 在Unix中,/表示目录。 $(date +%d/%m/%y.%HH:%MM)home_backup.tar.bz2的扩展将包含两个/,tar将要在指定的子目录中创建该文件。在上面的命令中,我们将/替换为-,并避免了问题。

  2. tar:之前的文件名部分视为远程主机的名称。由于您没有尝试将文件发送到远程主机,因此应从用于创建文件名的:命令中删除所有date。在上面的命令中,我们将:替换为.,并避免了问题。

  3. 上面的命令显示双引号内的tar文件的名称。使用上面显示的特定命令,这不是必需的。然而,使用双引号可以防止分词,这可以避免将来发生令人不快的意外。