如何压缩文件夹 (tar1) 并将该压缩文件夹发送到不同的目录(假设称为 tar2)。
我检查了这里的问题,其中大多数都使用文件,而不是目录,我一直在尝试所有组合,但我无法让它正常工作。
在我的〜我有:
tar1/
a.txt
b.txt
tar2/
Tar1/ 中有一个名为 a.txt 和 b.txt 的测试文件。我想压缩该文件夹并将其放入 tar2/
所以之后它看起来像:
tar1/
a.txt
b.txt
tar2/
tar1.gz
a.txt
b.txt
我正在尝试
tar czvf tar2/ tar1/
(我在一本参考书中给出了该语法的示例,其中第一个路径是您要存储它的位置,第二个路径是您要创建存档的位置。
我还尝试过以 -C 作为我的目的地:
tar cvzf tar1/ -C tar2/
希望 tar1/ 压缩目录并将其放入 tar2
我收到这个错误
tar:懦弱地拒绝创建空档案
尝试
tar --help' or
tar --usage' 以获取更多信息。
我使用的是 RHEL 6.7
答案1
您没有在声明中指定存档。它应该看起来像:
tar -cvf tar2/tar1.tar tar1/
这会将 tarball 放入tar1.tar
目录中tar2/
。
前:
tree tar*
tar1
├── a.txt
└── b.txt
tar2
├── a.txt
└── b.txt
0 directories, 4 files
后:
tar -cvf tar2/tar1.tar tar1/
tar1/
tar1/a.txt
tar1/b.txt
tree tar*
tar1
├── a.txt
└── b.txt
tar2
├── a.txt
├── b.txt
└── tar1.tar
0 directories, 5 files
环境:
Distributor ID: Debian
Description: Debian GNU/Linux 8.6 (jessie)
Release: 8.6
Codename: jessie
答案2
你什么实际上正在尝试做是埋在另一个答案的评论中。 tar
显然不是先决条件,压缩也不是。
下面是如何使用 来做到这一点pax
。
要在以下位置创建压缩存档tar1/*
(但不带tar1/
前缀)tar2/tar1.tar.gz
:
( cd tar1/ && pax -z -w * > ../tar2/tar1.tar.gz )
将整个层次结构直接从 复制tar1/
到tar2/
没有中间档案和保存一切:
( cd tar1/ && pax -pe -r -w * ../tar2/ )
*
请注意,当然,shell 不会在其扩展中包含点文件。如果碰巧出现问题,请按照通常的方式处理。