压缩文件夹名称中没有包含目录的文件夹(tar)


21

我正在尝试使用tar命令压缩文件夹。

当我尝试压缩它时,它可以正常工作。问题出在文件名上。

源路径:

/data/file/

目标路径:

/data/repo/temp/file.tar.gz

tar zcvf $srcpath $destinationpath

我正在从另一个文件夹执行命令,并且在提取文件夹时,我得到了所有子目录,而不是单独的文件夹。


1
tar语法是:tar zcvf file.tar.gz /path/dir/to/compress也许您应该更改命令,tar zcvf $destinationpath $srcpath但是我不清楚您需要什么。您能举例说明您对tar命令有什么期望吗?
Lety 2014年

感谢您的评论,我的问题是您在此处共享的评论“ tar zcvf file.tar.gz / path / dir / to / compres”如果我们在同一目录“文件”中,这应该可以正常工作我们正在不同的目录中工作,例如:/ home / testuser1 / file:文件是我要压缩的文件夹,正在从根目录而不是根目录执行命令,因此我们可能需要将整个路径提供给该文件夹,同时提取从/ home / testuser1 / file而不是从文件夹中获取所有子目录
Seetha Raman 2014年

可能是拼写错误,但在您的示例中,您混合了源和目标。
Jacob Vlijm 2014年

Answers:


49

最简单的方法是先cd到目录:

cd /path/to/containing/folder && tar -zcvf tarfile.tar.gz foldername_tocompress

这样,(包含)文件夹的目录将成为压缩文件的根目录。

使用-C选项更高级:

tar -zcvf tarfile.tar.gz -C /path/to/foldername_tocompress .

这将tar.gz在当前(工作)目录中创建一个文件,其中包含所有文件/文件夹foldername_tocompress(注意点,表示应包括所有文件/文件夹)。


4
第二个命令末尾的点将包括当前目录中的所有文件...
David Duncan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.