我想压缩去年的作业。如何从命令行 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>
使用-J
XZ 压缩算法,与 7zip 相同
-c
创建新文件,
-h
保留 simlinks,
-f
设置文件名