如何从命令行创建 tar.7z 文件?

如何从命令行创建 tar.7z 文件?

我想压缩去年的作业。如何从命令行 Ubuntu(我没有 GUI)压缩整个文件夹。

答案1

使用以下一行代码:

tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z

答案2

这是不是一个好主意是直接使用 7z 进行压缩,特别是在 unix/linux 系统上:7z不保留权限和/或用户/组信息.因此:先tar,然后compress。

正如 7zip 维基页面所述http://en.wikipedia.org/wiki/7z#Limitations

限制

7z 格式不存储文件系统权限(例如 UNIX 所有者/组权限或 NTFS ACL),因此可能不适合用于备份/存档。在类 UNIX 系统中,解决此问题的一种方法是先将数据转换为 tar 比特流,然后再使用 7z 进行压缩。

答案3

阅读man tar。它提供:

     -a, --auto-compress
       use archive suffix to determine the compression program
     -j, --bzip2
     --lzip
     --lzma
     --lzop
     -z, --gzip, --gunzip --ungzip
     -Z, --compress, --uncompress

或者,如果这些都不适合您,并且您有一个读取的压缩程序stdin,您可以:

tar cf- $HOME | my_compression_program >/tmp/compressed.output

请注意,我将输出写入除$HOME(备份到您正在备份的目录会导致文件不受限制地增长)之外的其他地方。

或者,你可以阅读man 7z- 看起来你可以这样做

dir="directory to save"
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on /tmp/archive.7z $dir 

答案4

你应该使用tar -Jchf <Filename>.tar.xz <Files to compress>

使用-JXZ 压缩算法,与 7zip 相同

-c创建新文件, -h保留 simlinks, -f设置文件名

相关内容