如何将一个目录打包到另一个目录?

rob*_*omo 5 rhel tar gzip

如何压缩文件夹 (tar1) 并将该压缩文件夹发送到不同的目录(假设称为 tar2)。

我检查了这里的问题,其中大多数都使用文件,而不是目录,我一直在尝试所有组合,但我无法让它正常工作。

在我的〜我有:

tar1/
  a.txt
  b.txt
tar2/
Run Code Online (Sandbox Code Playgroud)

Tar1/ 中有一个名为 a.txt 和 b.txt 的测试文件。我想压缩该文件夹并将其放入 tar2/

所以之后它看起来像:

tar1/
 a.txt
 b.txt
tar2/
 tar1.gz
     a.txt
     b.txt
Run Code Online (Sandbox Code Playgroud)

我正在尝试

tar czvf tar2/ tar1/
Run Code Online (Sandbox Code Playgroud)

(我在一本参考书中给出了该语法的示例,其中第一个路径是您要存储它的位置,第二个路径是您要创建存档的位置。

我还尝试过以 -C 作为我的目的地:

tar cvzf tar1/ -C tar2/
Run Code Online (Sandbox Code Playgroud)

希望 tar1/ 压缩目录并将其放入 tar2

我收到这个错误

tar:懦弱地拒绝创建空档案

尝试tar --help' or tar --usage' 以获取更多信息。

我使用的是 RHEL 6.7

mau*_*wns 2

您没有在语句中指定存档。\n它应该类似于:

\n\n
tar -cvf tar2/tar1.tar tar1/\n
Run Code Online (Sandbox Code Playgroud)\n\n

这会将 tarball 放入tar1.tar目录中tar2/

\n\n

前:

\n\n
tree tar*\ntar1\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 a.txt\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 b.txt\ntar2\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 a.txt\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 b.txt\n\n0 directories, 4 files\n
Run Code Online (Sandbox Code Playgroud)\n\n

后:

\n\n
tar -cvf tar2/tar1.tar tar1/\ntar1/\ntar1/a.txt\ntar1/b.txt\n\ntree tar*\ntar1\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 a.txt\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 b.txt\ntar2\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 a.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 b.txt\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tar1.tar\n\n0 directories, 5 files\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

环境:

\n\n
Distributor ID: Debian\nDescription:    Debian GNU/Linux 8.6 (jessie)\nRelease:    8.6\nCodename:   jessie\n
Run Code Online (Sandbox Code Playgroud)\n