我正在尝试打包文件:
file1
folder2/hello
folder2/world
file3
Run Code Online (Sandbox Code Playgroud)
到 tar 文件中,以便将它们封装在自定义定义的文件夹中,因此tar -tvf archive.tar
显示为:
mycustomfolder/file1
mycustomfolder/folder2/hello
mycustomfolder/folder2/world
mycustomfolder/file3
Run Code Online (Sandbox Code Playgroud)
目前要解决这个问题,我是:
file1
,folder2
和的存档(x) file3
。mycustomfolder
文件夹。mycustomfolder
mycustomfolder
我不禁认为他们可能是这样做的一步或更好的方法?
如果您希望存档提取到它自己的目录中——这通常会更好,因为那些不会弄乱的目录——只需创建目录,然后将内容树移动/复制到其中,这样你就可以了在你的第二个例子中:
mycustomfolder/file1
mycustomfolder/folder2/hello
mycustomfolder/folder2/world
mycustomfolder/file3
Run Code Online (Sandbox Code Playgroud)
然后tar -cvf myarchive.tar mycustomfolder
。要提取,tar -xvf myarchive.tar
.
如果不想先创建目录,可以转换文件名并附加目录前缀:
tar --xform="s%^%mycustomfolder/%" -cvf myarchive.tar file1 folder2 file3
Run Code Online (Sandbox Code Playgroud)
转换(请参阅man tar
)使用sed
语法;我使用%
代替/
分隔符,因为s/^/mycustomerfolder\//
创建了一个名为mycustomfolder\
(==奇怪的行为 IMO)的文件夹,但是s/^/mycustomfolder//
(正确地)是一个“无效的转换表达式”。
归档时间: |
|
查看次数: |
1253 次 |
最近记录: |