如何使用 tar 解压到不同的目录?

如何使用 tar 解压到不同的目录?

这不起作用:

tar xf /tmp/foo.tar.gz foo/bar
tar: foo/bar: Not found in archive

对我来说,除了将其提取到位并移动文件之外,还不清楚做什么。

答案1

man tar

     -C directory
         In c and r mode, this changes the directory before adding the
         following files.  In x mode, change directories after opening the
         archive but before extracting entries from the archive.

即,tar xC /foo/bar -f /tmp/foo.tar.gz应该完成这项工作。 (在 FreeBSD 上,但GNU tar在这方面基本相同,请参阅其手册中的“更改工作目录”

答案2

如果您想在其他地方提取 tar 存档光盘到目标目录并在那里解压它:

 mkdir -p foo/bar
 cd foo/bar
 tar xzvf /tmp/foo.tar.gz

foo/bar您使用的命令将搜索存档中的文件并将其解压缩。

答案3

正在做:

(cd foo/bar ; tar xf /tmp/foo.tar.gz )

会做的工作。

基本上,它的作用是生成一个新的 shell(括号),在这个子 shell 中,将目录更改为foo/bar,然后解压缩文件。

;您可以通过 a更改&&以确保cd工作正常。

答案4

更改要解压的目录

cd /u02/restore

如果解压文件位于 /u01/backup.tar 下,则

摘录如下:

cd /u02/restore
tar -xvf /u01/backup.tar

相关内容