使用tar打包相对于路径的文件

时间:2016-05-15 12:47:27

标签: linux bash tar

在脚本中,我有一个相关文件路径列表,用于打包到存档中。如果我使用:

Cache-Control: max-age=600

档案结构是:

# list of some relative file paths determined at runtime
FILES="../path1/file1 ../path1/path2/file2 ../path1/file3 ... more files ..."

# pack files
tar -cavf target.tar.gz $FILES

但我希望文件打包相对于运行时确定的路径path1/file1 path1/path2/file2 path1/file3 ...

../path1

我不想使用file1 path2/file2 file3 ... 参数,因为那时我还要修改路径。 有一个简单的解决方案吗?

2 个答案:

答案 0 :(得分:0)

我自己回答。唯一的解决方案似乎是编辑realpath的相对路径:

realpath --relative-to=../path1 ../path1/file1 ../path1/path2/file2 ../path1/file3 \
  | tar -acvf target.tar.gz -C ../path1  -T -

答案 1 :(得分:0)

也许您的简化示例问题中缺少一个细节,但仅仅移动到该相关文件夹就不够了吗?

cd ../path1
FILES="file1 path2/file2 file3"
tar -cavf target.tar.gz $FILES