我有一个进程根据一些现有的文件创建tar文件,然后我希望另一个进程将更多的文件添加到该tar文件中。这个如何通过编程实现?
在tar文件中没有所谓的文件夹。每个文件都可以有一个路径,因此tar文件可能包含以下内容:
/some/path/foo
/some/path/bar
/another/path/baz
/elsewhere/quartz
,想要将它作为/some/path/quartz
添加到tar文件中,可以这样做:tar -rvf tarfilename --transform 's,.*/,/some/path/,' /elsewhere/quartz
(这将适用于GNU tar,其他版本可能不适用。)
单引号内的内容是一个正则表达式替换命令,大致意思是“取斜杠之前的所有内容(尽可能多),并用/some/path/
替换它”。
tar -rf files.tar file2
,该文件中有一个名为file1的文件,当我删除这些文件并解压缩files.tar(tar -xf files.tar
)时,我得到了两个文件。对于目录也可以正常工作。我不认为需要那种过于复杂的解决方案。 - Braden Best
tar -r
是向 tar 文件中追加内容的命令。您还需要什么? - Betafoo
放在/some/path/foo
中,还是想让它成为 tar 文件中的第三个文件,或者想让它从 tar 文件开头开始的 140kB 处开始? - Beta