将tar存档输出到bash脚本中的特定路径

时间:2019-04-11 18:12:11

标签: bash tar

我的脚本中有一部分使用tar来存档一些文件夹。它将存档结果输出到指定的文件夹。

以下tar命令将文件输出到正确的文件夹,但将生成的归档与指向该目录的完整路径嵌套在一起。

例如 在我的tar文件中,我具有以下文件夹: 完整/路径/到/文件

文件夹结构看起来不应该相对于父文件夹而不是根文件夹。

代码如下:

...
local PROJECTS=(~/path/to/folder/*)
...
local PROJECT_PATH="${PROJECTS[$i]}"
local BACKUP_NAME=`date +%d%b%y`.tar.gz
echo Making folder "${PROJECT_PATH}"/backups
tar -czvf $PROJECT_PATH/backups/$BACKUP_NAME $PROJECT_PATH --exclude="${PROJECT_PATH}"/node_modules --exclude="${PROJECT_PATH}"/backups

1 个答案:

答案 0 :(得分:1)

如果您希望tar保存相对于某个目录的路径,请使用-C切换到该目录并提供相对路径:

tar -czvf "$PROJECT_PATH/backups/$BACKUP_NAME" -C "$PROJECT_PATH" . --exclude=./node_modules --exclude=./backups

-C "$PROJECT_PATH"告诉tar切换到$PROJECT_PATH目录,随后的.告诉它存档其当前目录。