假设我有一个文件目录
/home/user1/dir1
Run Code Online (Sandbox Code Playgroud)
我想创建一个只有“dir1”作为前导目录的tar:
/dir1/file1
/dir1/file2
Run Code Online (Sandbox Code Playgroud)
我知道我可以先 cd 到目录
cd /home/user1/
tar czvf dir1.tar.gz dir1
Run Code Online (Sandbox Code Playgroud)
但是在编写脚本时,从一个目录跳转到另一个目录并不总是有利的。我想知道有没有办法在不更改当前目录的情况下使用绝对路径?
我知道我总是可以在 INSIDE 中创建一个带有绝对路径的 tar 文件并使用
--strip-components
Run Code Online (Sandbox Code Playgroud)
提取时,但有时额外的路径名是您不想与 tar 文件一起分发的额外私人信息。
谢谢!
Chr*_*uet 26
使用 gnu tar,您可以使用与实际不同的基本目录创建存档:
tar -c --transform 's,^\.,mybasedir,' .
Run Code Online (Sandbox Code Playgroud)
只需根据您的需要调整 sed 表达式即可。
Phi*_*lds 25
tar -C 改变目录
tar -C /home/user1/ -cvzf dir1.tar.gz dir1
Run Code Online (Sandbox Code Playgroud)
顺便说一句,用于跟踪更改目录的方便...使用pushd和popd。
pushd .
cd /home/user1
tar cvfz dir1.tar.gz
popd
Run Code Online (Sandbox Code Playgroud)
好的,我也发现了
tar -czvf file1.tar.gz /home/user1/dir1/../dir1
Run Code Online (Sandbox Code Playgroud)
也按照我想要的方式工作。
归档时间: |
|
查看次数: |
25600 次 |
最近记录: |