假设我有两个目录,我希望tar
不保留目录结构:
/root/dir1
/root/dir2
- 另外,我想仅备份 /root/dir1 中以 f1 开头的文件和 /root/dir1 中名为 log.txt 的文件
- 在 /root/dir2 中我只想要以 f2 开头的文件
我怎样才能做到这一点?
答案1
如果您有 GNU tar,则可以使用--transform
或--strip-components
选项来获取没有目录树的平面存档。就像是:
tar cf foo.tar --transform='s:.*/::' /root/dir1/f1* /root/dir2/f2* /root/dir1/log.txt
/
GNU tar 会对文件名中的前导发出警告,但我们无论如何都会删除它们。
或者,使用几个cd
s:
cd /root/dir1;
tar cf /some/where/foo.tar f1* log.txt
cd /root/dir2;
tar uf /some/where/foo.tar f2*
在这里,我们需要指定一个不受cd
s 影响的 tar 存档路径(因此是绝对路径,或者因为两者都是 中的目录/root
,所以是父文件夹的路径)。