使用 tar 提取文件夹内容?

Ole*_*Ole 5 linux tar directory

这里有一个类似的问题

如果我理解正确的话,第一个答案表明我们无法提取文件夹的内容,而只能提取文件夹中的特定文件?

第二个答案使用该--directory选项。这看起来正是我想要的,但是这不会从存档中的某个目录中提取文件,而是将文件输出到选项指示的目录--directory

当我压缩文件夹 tar 时,包含了从根目录开始的整个路径。所以它有home/ole/folder/thestuff。我想解压folder/thestuff到当前所在的文件夹中,但不包含home/ole.

想法?

Bow*_*Red 5

如果我理解正确的话,第一个答案表明我们无法提取文件夹的内容,而只能提取文件夹中的特定文件?

不,它谈论的是相对文件名与绝对文件名。/some/path和之间的区别some/path

查看 tarfile 的内容tar tf file/path/to/folder当文件夹列为 时,您不能将其指定为path/to/folder

提供(正确的)文件夹来提取是没有问题的。

  • 列出将要提取的文件

tar tf file.tar path/to/folder

  • 解压文件(到当前目录)

tar xf file.tar path/to/folder

举个例子:

检查内容:

$ tar tf ../test.tar
a/
a/3
a/2
a/1
b/
b/3
b/2
b/1
Run Code Online (Sandbox Code Playgroud)

解压文件夹a

$ tar xf ../test.tar a
Run Code Online (Sandbox Code Playgroud)

看看它提取了什么

$ find .
.
./a
./a/3
./a/2
./a/1
Run Code Online (Sandbox Code Playgroud)