如何从其他文件夹创建 tar 文件到特定文件夹

如何从其他文件夹创建 tar 文件到特定文件夹

大家好,我是 Linux 新手。

我正在尝试从不同的目录创建一个 tar 文件,并希望将其放置在特定的目录中。

我已经尝试过这个cmd

tar -cvf dailybackup.tar /root/filesfromlocalmachine/ -C /root/backup/

有一个名为 pf backup 的文件夹,我想在那里创建 tar。但是每当我执行此命令时,tar 都会在我执行命令的文件夹中创建。有没有办法从不同的文件夹创建 tar 文件?

答案1

是的,把目录放在“tar”前面。

cd /
tar -cvf /where/to/put/it/dailybackup.tar root/backup/

它将会备份root/backup

我建议始终使用相对路径进行备份(正如我在回答中所用的那样),否则当您想在其他地方恢复它时可能会覆盖目标,然后与备份版本进行比较。

答案2

每当tar遇到一个-C选项时,当前工作目录就会发生变化,所有后续选项都会受到影响。这使得此选项对顺序敏感。

./a:      ./b:
file001   file002

例如,使用多个-C选项会使第二个选项-C相对于第一个选项。

$ tar -vcf archive.tar.gz -C ./a . -C ../b .  
./  
./file001  
./  
./file002

因为-C没有调整 [FILE...] 条目,路径扩展(... 通配符)不起作用。但是,在需要通配符的情况下,--transform可以使用。

$ tar -cvf archive.tar.gz \
    --show-transformed-names --transform='s:^./.*/::' ./[ab]/file00?
file001
file002

'--strip-components=<n>'可用于在萃取时剥离主要成分。

$ tar -vxf archive.tar.gz \
    --show-transformed-names --strip-components=2  
file001  
file002

相关内容