我的脚本中有一部分使用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
答案 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
目录,随后的.
告诉它存档其当前目录。