将 tar 存档输出到 bash 脚本中的特定路径
Output A tar archive into a specific path in a bash script
我的脚本中有一部分使用 tar 来归档一些文件夹。它应该将存档结果输出到指定的文件夹。
以下 tar 命令将文件输出到正确的文件夹,但使生成的存档与通向它的完整路径嵌套。
例如
在我的 tar 文件中,我有以下文件夹:
full/path/to/file
文件夹结构不应该看起来应该是相对于父文件夹而不是根文件夹。
代码如下:
...
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
如果您希望tar
保存相对于某个目录的路径,请使用-C
切换到该目录并提供相对路径:
tar -czvf "$PROJECT_PATH/backups/$BACKUP_NAME" -C "$PROJECT_PATH" . --exclude=./node_modules --exclude=./backups
-C "$PROJECT_PATH"
告诉tar
切换到$PROJECT_PATH
目录,后面的.
告诉它归档当前目录。
我的脚本中有一部分使用 tar 来归档一些文件夹。它应该将存档结果输出到指定的文件夹。
以下 tar 命令将文件输出到正确的文件夹,但使生成的存档与通向它的完整路径嵌套。
例如 在我的 tar 文件中,我有以下文件夹: full/path/to/file
文件夹结构不应该看起来应该是相对于父文件夹而不是根文件夹。
代码如下:
...
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
如果您希望tar
保存相对于某个目录的路径,请使用-C
切换到该目录并提供相对路径:
tar -czvf "$PROJECT_PATH/backups/$BACKUP_NAME" -C "$PROJECT_PATH" . --exclude=./node_modules --exclude=./backups
-C "$PROJECT_PATH"
告诉tar
切换到$PROJECT_PATH
目录,后面的.
告诉它归档当前目录。