大家好,我是 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