【问题标题】:Compress full directory with bzip2 into a tar file whose name depends on the current date使用 bzip2 将整个目录压缩成一个名称取决于当前日期的 tar 文件
【发布时间】:2016-08-25 22:35:25
【问题描述】:

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

【问题讨论】:

    标签: bash compression syntax-error bzip2


    【解决方案1】:

    不要将:/ 放在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 文件的名称。使用上面显示的特定命令,这不是必需的。但是,使用双引号可以防止分词,这可能会让您在将来避免不愉快的意外。

    【讨论】:

      猜你喜欢
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 2018-02-24
      • 2017-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多