alp*_*l74 23 compression tar 7zip
我想把我去年的作业拉上拉链。我如何从命令行 Ubuntu tar 和压缩整个文件夹(我没有 GUI)。
ort*_*ang 26
使用以下单行:
tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z
Run Code Online (Sandbox Code Playgroud)
小智 10
这是不是一个好主意,直接与7Z spcially在Unix / Linux系统压缩:7z格式不保留权限和或用户/组信息。所以:首先tar,然后压缩。
正如在http://en.wikipedia.org/wiki/7z#Limitations 的7zip wiki 页面上所报道的:
限制
7z 格式不存储文件系统权限(例如 UNIX 所有者/组权限或 NTFS ACL),因此可能不适用于备份/存档目的。类 UNIX 系统上的解决方法是在使用 7z 压缩之前将数据转换为 tar 比特流。
阅读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
Run Code Online (Sandbox Code Playgroud)
或者,如果这些都不适合您,并且您有一个读取 的压缩程序stdin
,您可以:
tar cf- $HOME | my_compression_program >/tmp/compressed.output
Run Code Online (Sandbox Code Playgroud)
请注意,我正在将输出写入$HOME
(备份到您正在备份的目录会导致文件增长不受限制)以外的其他地方。
或者,您可以阅读man 7z
- 看起来您可以这样做
dir="directory to save"
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on /tmp/archive.7z $dir
Run Code Online (Sandbox Code Playgroud)
小智 7
我建议你使用:
tar cf - foldername | 7z a -si -m0=lzma2 -mx=3 foldername.tar.7z
Run Code Online (Sandbox Code Playgroud)
为显着的加速增加。
它的优点是使用 lzma2 ( -m0=lzma2
)(它利用系统上的最大可用内核和“快速压缩”预设 ( -mx=3
),这基本上是快速且足够好的。请注意,LZMA2 不仅在压缩时利用所有内核,而且在减压。