标签 压缩 下的文章

在 KDE 上创建、检查和扩展压缩的档案。

 title=

当我完成一个项目时,我经常喜欢把为这个项目创建的所有文件放到一个档案中。这不仅可以 节省空间,而且可以让这些文件远离我的视线,防止它们在我使用 findgrep 搜索我当前想要的文件时作为结果出现。一旦文件被归档,它们就会被你的文件系统视为一个单独的对象,这意味着你不能像浏览普通文件夹那样来浏览它们。你可以把它们解压缩来列出档案的内容,或者打开一个终端,运行适当的归档命令,比如 tar 命令。又或者你可以使用一个像 Ark 这样的应用程序来列出、预览、修改和管理你的档案。

在 Linux 上安装 Ark

KDE Plasma 桌面预装了 Ark,你也可以从软件包管理器中获取。在 Fedora、Mageia 和类似的系统中,你可以运行:

$ sudo dnf install ark

在 Debian、Elementary 和类似的系统中,你可以运行:

$ sudo apt install ark

你也可以从 Flathub获取并安装它的 Flatpak 包

创建一个档案

熟悉归档的最好方法就是自己创建一个档案,然后探索它。所有的这些都可以通过 Ark 来完成。

首先,从你的应用程序菜单中启动 Ark,然后进入“ 档案 Archive ”菜单,选择“ 新建 New ”。

 title=

(图源 Seth Kenlon / CC BY-SA 4.0

给你的档案设置一个文件名,使用默认的压缩设置,并将档案保存到你的主目录。

Ark 不会自动创建空的档案,但在你设置好名称和位置后,只要你向其中添加文件,Ark 就会立即创建一个档案。

要向即将建立的档案中添加文件,只需将该文件拖入 Ark 窗口即可。

 title=

(图源 Seth Kenlon / CC BY-SA 4.0

归档有两个好处:合并和压缩。通过把文件添加到档案里,你将许多文件整合到了同一个地方。因为它们已经存在于档案中,所以,如果你想要摆脱这些文件的干扰,你完全以把原始的副本删除掉。

要查看你通过压缩文件节省了多少磁盘空间,你可以进入“ 档案 Archive ”菜单,选择“ 属性 Properties ”。它会显示出文件在归档前/后的大小,同时还有很多其他有用的元数据。

 title=

(图源 Seth Kenlon / CC BY-SA 4.0

Ark 可以做的事情还有很多,但是现在先关闭 Ark,假装你已经使用完毕。你的档案会存放在你声明保存它的位置(在这个例子中,它的名字是 example.tar.gz,位于我的用户主目录中。)

查看档案中的文件

Ark 可以打开任何档案,就像打开一个普通的文件夹一样。要在 Ark 中打开一个档案,只需在文件管理器中左键点击它(单击/双击,取决于你的系统设置)。你也可以右键点击它,并选择“ 用 Ark 打开 Open with Ark ”。

一旦档案在 Ark 中打开,你就可以在文件管理器中进行大部分操作,包括删除文件、添加新文件、预览文件内容等等。

从档案中删除文件

有时候,你会把一个文件放到一个你不需要的档案中。此时,当你想从档案中删除一个文件时,你可以右键单击该文件并选择“ 删除 Delete ”。

 title=

(图源 Seth Kenlon / CC BY-SA 4.0

向档案中添加文件

向档案中添加文件是更加容易的。你只需从文件管理器中把该文件拖拽到 Ark 里。另外,你也可以选择 Ark 右键菜单中“ 添加文件 Add Files ”。

从档案中提取单个文件

当处理一个档案时,许多人会选择解开整个档案,然后寻找他们真正需要的一两个文件。对于小型档案,这勉强说得过去,但对于大型档案来说,这会占用你大量的时间和磁盘空间,哪怕只是暂时的。

有了 Ark,你可以只提取你需要的文件,只要把它们从 Ark 窗口拖到你要保存的地方就行。另外,你也可以选择右键菜单中的“ 提取 Extract ”。

预览档案中的文件

事实上,你并不总是需要提取文件。如果你只是需要快速查看一个文件,Ark 或许可以向你展示一个文件的预览,而不需要将其解压到你的硬盘上。

要预览一个文件,在 Ark 中双击它即可。

 title=

(图源 Seth Kenlon / CC BY-SA 4.0

开始归档吧

在 Linux 桌面上管理档案是非常简单和直观的。Ark 是一个很好的归档工具,许多其他的 Linux 桌面也有类似的工具。因此,即使你不使用 Ark,其他类似的工具也能帮助到你。对我来说,归档很大程度上让我保持了文件的有条不紊、节约了磁盘空间。Ark 的存在使得我们可以很方便地和档案打交道。


via: https://opensource.com/article/22/2/archives-files-linux-ark-kde

作者:Seth Kenlon 选题:lujun9972 译者:lkxed 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在 Linux 系统上有很多可以用于压缩文件的工具,但它们的表现并不都是一样的,也不是所有的压缩效果都是一样的。在这篇文章中,我们比较其中的五个工具。

在 Linux 上有不少用于压缩文件的命令。最新最有效的一个方法是 xz,但是所有的方法都有节省磁盘空间和维护备份文件供以后使用的优点。在这篇文章中,我们将比较这些压缩命令并指出显著的不同。

tar

tar 命令不是专门的压缩命令。它通常用于将多个文件拉入一个单个的文件中,以便容易地传输到另一个系统,或者将文件作为一个相关的组进行备份。它也提供压缩的功能,这就很有意义了,附加一个 z 压缩选项能够实现压缩文件。

当使用 z 选项为 tar 命令附加压缩过程时,tar 使用 gzip 来进行压缩。

就像压缩一组文件一样,你可以使用 tar 来压缩单个文件,尽管这种操作与直接使用 gzip 相比没有特别的优势。要使用 tar 这样做,只需要使用 tar cfz newtarfile filename 命令来标识要压缩的文件,就像标识一组文件一样,像这样:

$ tar cfz bigfile.tgz bigfile
            ^            ^
            |            |
            +- 新的文件  +- 将被压缩的文件

$ ls -l bigfile*
-rw-rw-r-- 1 shs shs 103270400 Apr 16 16:09 bigfile
-rw-rw-r-- 1 shs shs 21608325 Apr 16 16:08 bigfile.tgz

注意,文件的大小显著减少了。

如果你愿意,你可以使用 tar.gz 扩展名,这可能会使文件的特征更加明显,但是大多数的 Linux 用户将很可能会意识到与 tgz 的意思是一样的 – targz 的组合来显示文件是一个压缩的 tar 文件。在压缩完成后,你将同时得到原始文件和压缩文件。

要将很多文件收集在一起并在一个命令中压缩出 “tar ball”,使用相同的语法,但要指定要包含的文件为一组,而不是单个文件。这里有一个示例:

$ tar cfz bin.tgz bin/*
          ^         ^
          |         +-- 将被包含的文件
          + 新的文件

zip

zip 命令创建一个压缩文件,与此同时保留原始文件的完整性。语法像使用 tar 一样简单,只是你必需记住,你的原始文件名称应该是命令行上的最后一个参数。

$ zip ./bigfile.zip bigfile
updating: bigfile (deflated 79%)
$ ls -l bigfile bigfile.zip
-rw-rw-r-- 1 shs shs 103270400 Apr 16 11:18 bigfile
-rw-rw-r-- 1 shs shs  21606889 Apr 16 11:19 bigfile.zip

gzip

gzip 命令非常容易使用。你只需要键入 gzip,紧随其后的是你想要压缩的文件名称。不像上述描述的命令,gzip 将“就地”“加密”文件。换句话说,原始文件将被“加密”文件替换。

$ gzip bigfile
$ ls -l bigfile*
-rw-rw-r-- 1 shs shs  21606751 Apr 15 17:57 bigfile.gz

bzip2

像使用 gzip 命令一样,bzip2 将在你选择的文件“就地”压缩,不留下原始文件。

$ bzip bigfile
$ ls -l bigfile*
-rw-rw-r-- 1 shs shs  18115234 Apr 15 17:57 bigfile.bz2

xz

xz 是压缩命令团队中的一个相对较新的成员,在压缩文件的能力方面,它是一个领跑者。像先前的两个命令一样,你只需要将文件名称提供给命令。再强调一次,原始文件被就地压缩。

$ xz bigfile
$ ls -l bigfile*
-rw-rw-r-- 1 shs shs 13427236 Apr 15 17:30 bigfile.xz

对于大文件来说,你可能会注意到 xz 将比其它的压缩命令花费更多的运行时间,但是压缩的结果却是非常令人赞叹的。

对比

大多数人都听说过“大小不是一切”。所以,让我们比较一下文件大小以及一些当你计划如何压缩文件时的问题。

下面显示的统计数据都与压缩单个文件相关,在上面显示的示例中使用 bigfile。这个文件是一个大的且相当随机的文本文件。压缩率在一定程度上取决于文件的内容。

大小减缩率

当比较时,上面显示的各种压缩命产生下面的结果。百分比表示压缩文件与原始文件的比较效果。

-rw-rw-r-- 1 shs shs 103270400 Apr 16 14:01 bigfile
------------------------------------------------------
-rw-rw-r-- 1 shs shs 18115234 Apr 16 13:59 bigfile.bz2    ~17%
-rw-rw-r-- 1 shs shs 21606751 Apr 16 14:00 bigfile.gz     ~21%
-rw-rw-r-- 1 shs shs 21608322 Apr 16 13:59 bigfile.tgz    ~21%
-rw-rw-r-- 1 shs shs 13427236 Apr 16 14:00 bigfile.xz     ~13%
-rw-rw-r-- 1 shs shs 21606889 Apr 16 13:59 bigfile.zip    ~21%

xz 命令获胜,最终只有压缩文件 13% 的大小,但是所有这些压缩命令都相当显著地减少原始文件的大小。

是否替换原始文件

bzip2gzipxz 命令都用压缩文件替换原始文件。tarzip 命令不替换。

运行时间

xz 命令似乎比其它命令需要花费更多的时间来“加密”文件。对于 bigfile 来说,大概的时间是:

命令      运行时间
tar       4.9 秒
zip       5.2 秒
bzip2    22.8 秒
gzip      4.8 秒
xz       50.4 秒

解压缩文件很可能比压缩时间要短得多。

文件权限

不管你对压缩文件设置什么权限,压缩文件的权限将基于你的 umask 设置,但 bzip2 除外,它保留了原始文件的权限。

与 Windows 的兼容性

zip 命令创建的文件可以在 Windows 系统以及 Linux 和其他 Unix 系统上使用(即解压),而无需安装其他工具,无论这些工具可能是可用还是不可用的。

解压缩文件

解压文件的命令与压缩文件的命令类似。在我们运行上述压缩命令后,这些命令用于解压缩 bigfile

  • tar: tar xf bigfile.tgz
  • zip: unzip bigfile.zip
  • gzip: gunzip bigfile.gz
  • bzip2: bunzip2 bigfile.gz2
  • xz: xz -d bigfile.xzunxz bigfile.xz

自己运行压缩对比

如果你想自己运行一些测试,抓取一个大的且可以替换的文件,并使用上面显示的每个命令来压缩它 —— 最好使用一个新的子目录。你可能需要先安装 xz,如果你想在测试中包含它的话。这个脚本可能更容易地进行压缩,但是可能需要花费几分钟完成。

#!/bin/bash

# 询问用户文件名称
echo -n "filename> "
read filename

# 你需要这个,因为一些命令将替换原始文件
cp $filename $filename-2

# 先清理(以免先前的结果仍然可用)
rm $filename.*

tar cvfz ./$filename.tgz $filename > /dev/null
zip $filename.zip $filename > /dev/null
bzip2 $filename
# 恢复原始文件
cp $filename-2 $filename
gzip $filename
# 恢复原始文件
cp $filename-2 $filename
xz $filename

# 显示结果
ls -l $filename.*

# 替换原始文件
mv $filename-2 $filename

via: https://www.networkworld.com/article/3538471/how-to-compress-files-on-linux-5-ways.html

作者:Sandra Henry-Stocker 选题:lujun9972 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

除了压缩和解压缩文件外,你还可以使用 zip 命令执行许多有趣的操作。这是一些其他的 zip 选项以及它们如何提供帮助。

为了节省一些磁盘空间并将文件打包在一起进行归档,我们中的一些人已经在 Unix 和 Linux 系统上压缩文件数十年了。即使这样,并不是所有人都尝试过一些有趣的压缩工具的变体。因此,在本文中,我们将介绍标准的压缩和解压缩以及其他一些有趣的压缩选项。

基本的 zip 命令

首先,让我们看一下基本的 zip 命令。它使用了与 gzip 基本上相同的压缩算法,但是有一些重要的区别。一方面,gzip 命令仅用于压缩单个文件,而 zip 既可以压缩文件,也可以将多个文件结合在一起成为归档文件。另外,gzip 命令是“就地”压缩。换句话说,它会只留下一个压缩文件,而原始文件则没有了。 这是工作中的 gzip 示例:

$ gzip onefile
$ ls -l
-rw-rw-r-- 1 shs shs 10514 Jan 15 13:13 onefile.gz

而下面是 zip。请注意,此命令要求为压缩存档提供名称,其中 gzip(执行压缩操作后)仅使用原始文件名并添加 .gz 扩展名。

$ zip twofiles.zip file*
 adding: file1 (deflated 82%)
 adding: file2 (deflated 82%)
$ ls -l
-rw-rw-r-- 1 shs shs 58021 Jan 15 13:25 file1
-rw-rw-r-- 1 shs shs 58933 Jan 15 13:34 file2
-rw-rw-r-- 1 shs shs 21289 Jan 15 13:35 twofiles.zip

请注意,原始文件仍位于原处。

所节省的磁盘空间量(即获得的压缩程度)将取决于每个文件的内容。以下示例中的变化很大。

$ zip mybin.zip ~/bin/*
 adding: bin/1 (deflated 26%)
 adding: bin/append (deflated 64%)
 adding: bin/BoD_meeting (deflated 18%)
 adding: bin/cpuhog1 (deflated 14%)
 adding: bin/cpuhog2 (stored 0%)
 adding: bin/ff (deflated 32%)
 adding: bin/file.0 (deflated 1%)
 adding: bin/loop (deflated 14%)
 adding: bin/notes (deflated 23%)
 adding: bin/patterns (stored 0%)
 adding: bin/runme (stored 0%)
 adding: bin/tryme (deflated 13%)
 adding: bin/tt (deflated 6%)

unzip 命令

unzip 命令将从一个 zip 文件中恢复内容,并且,如你所料,原来的 zip 文件还保留在那里,而类似的 gunzip 命令将仅保留未压缩的文件。

$ unzip twofiles.zip
Archive: twofiles.zip
 inflating: file1
 inflating: file2
$ ls -l
-rw-rw-r-- 1 shs shs 58021 Jan 15 13:25 file1
-rw-rw-r-- 1 shs shs 58933 Jan 15 13:34 file2
-rw-rw-r-- 1 shs shs 21289 Jan 15 13:35 twofiles.zip

zipcloak 命令

zipcloak 命令对一个 zip 文件进行加密,提示你输入两次密码(以确保你不会“胖手指”),然后将该文件原位存储。你可以想到,文件大小与原始文件会有所不同。

$ zipcloak twofiles.zip
Enter password:
Verify password:
encrypting: file1
encrypting: file2
$ ls -l
total 204
-rw-rw-r-- 1 shs shs 58021 Jan 15 13:25 file1
-rw-rw-r-- 1 shs shs 58933 Jan 15 13:34 file2
-rw-rw-r-- 1 shs shs 21313 Jan 15 13:46 twofiles.zip <== slightly larger than
 unencrypted version

请记住,压缩包之外的原始文件仍处于未加密状态。

zipdetails 命令

zipdetails 命令将向你显示详细信息:有关压缩文件的详细信息,可能比你想象的要多得多。即使我们正在查看一个加密的文件,zipdetails 也会显示文件名以及文件修改日期、用户和组信息、文件长度数据等。请记住,这都是“元数据”。我们看不到文件的内容。

$ zipdetails twofiles.zip

0000 LOCAL HEADER #1 04034B50
0004 Extract Zip Spec 14 '2.0'
0005 Extract OS 00 'MS-DOS'
0006 General Purpose Flag 0001
 [Bit 0] 1 'Encryption'
 [Bits 1-2] 1 'Maximum Compression'
0008 Compression Method 0008 'Deflated'
000A Last Mod Time 4E2F6B24 'Tue Jan 15 13:25:08 2019'
000E CRC F1B115BD
0012 Compressed Length 00002904
0016 Uncompressed Length 0000E2A5
001A Filename Length 0005
001C Extra Length 001C
001E Filename 'file1'
0023 Extra ID #0001 5455 'UT: Extended Timestamp'
0025 Length 0009
0027 Flags '03 mod access'
0028 Mod Time 5C3E2584 'Tue Jan 15 13:25:08 2019'
002C Access Time 5C3E27BB 'Tue Jan 15 13:34:35 2019'
0030 Extra ID #0002 7875 'ux: Unix Extra Type 3'
0032 Length 000B
0034 Version 01
0035 UID Size 04
0036 UID 000003E8
003A GID Size 04
003B GID 000003E8
003F PAYLOAD

2943 LOCAL HEADER #2 04034B50
2947 Extract Zip Spec 14 '2.0'
2948 Extract OS 00 'MS-DOS'
2949 General Purpose Flag 0001
 [Bit 0] 1 'Encryption'
 [Bits 1-2] 1 'Maximum Compression'
294B Compression Method 0008 'Deflated'
294D Last Mod Time 4E2F6C56 'Tue Jan 15 13:34:44 2019'
2951 CRC EC214569
2955 Compressed Length 00002913
2959 Uncompressed Length 0000E635
295D Filename Length 0005
295F Extra Length 001C
2961 Filename 'file2'
2966 Extra ID #0001 5455 'UT: Extended Timestamp'
2968 Length 0009
296A Flags '03 mod access'
296B Mod Time 5C3E27C4 'Tue Jan 15 13:34:44 2019'
296F Access Time 5C3E27BD 'Tue Jan 15 13:34:37 2019'
2973 Extra ID #0002 7875 'ux: Unix Extra Type 3'
2975 Length 000B
2977 Version 01
2978 UID Size 04
2979 UID 000003E8
297D GID Size 04
297E GID 000003E8
2982 PAYLOAD

5295 CENTRAL HEADER #1 02014B50
5299 Created Zip Spec 1E '3.0'
529A Created OS 03 'Unix'
529B Extract Zip Spec 14 '2.0'
529C Extract OS 00 'MS-DOS'
529D General Purpose Flag 0001
 [Bit 0] 1 'Encryption'
 [Bits 1-2] 1 'Maximum Compression'
529F Compression Method 0008 'Deflated'
52A1 Last Mod Time 4E2F6B24 'Tue Jan 15 13:25:08 2019'
52A5 CRC F1B115BD
52A9 Compressed Length 00002904
52AD Uncompressed Length 0000E2A5
52B1 Filename Length 0005
52B3 Extra Length 0018
52B5 Comment Length 0000
52B7 Disk Start 0000
52B9 Int File Attributes 0001
 [Bit 0] 1 Text Data
52BB Ext File Attributes 81B40000
52BF Local Header Offset 00000000
52C3 Filename 'file1'
52C8 Extra ID #0001 5455 'UT: Extended Timestamp'
52CA Length 0005
52CC Flags '03 mod access'
52CD Mod Time 5C3E2584 'Tue Jan 15 13:25:08 2019'
52D1 Extra ID #0002 7875 'ux: Unix Extra Type 3'
52D3 Length 000B
52D5 Version 01
52D6 UID Size 04
52D7 UID 000003E8
52DB GID Size 04
52DC GID 000003E8

52E0 CENTRAL HEADER #2 02014B50
52E4 Created Zip Spec 1E '3.0'
52E5 Created OS 03 'Unix'
52E6 Extract Zip Spec 14 '2.0'
52E7 Extract OS 00 'MS-DOS'
52E8 General Purpose Flag 0001
 [Bit 0] 1 'Encryption'
 [Bits 1-2] 1 'Maximum Compression'
52EA Compression Method 0008 'Deflated'
52EC Last Mod Time 4E2F6C56 'Tue Jan 15 13:34:44 2019'
52F0 CRC EC214569
52F4 Compressed Length 00002913
52F8 Uncompressed Length 0000E635
52FC Filename Length 0005
52FE Extra Length 0018
5300 Comment Length 0000
5302 Disk Start 0000
5304 Int File Attributes 0001
 [Bit 0] 1 Text Data
5306 Ext File Attributes 81B40000
530A Local Header Offset 00002943
530E Filename 'file2'
5313 Extra ID #0001 5455 'UT: Extended Timestamp'
5315 Length 0005
5317 Flags '03 mod access'
5318 Mod Time 5C3E27C4 'Tue Jan 15 13:34:44 2019'
531C Extra ID #0002 7875 'ux: Unix Extra Type 3'
531E Length 000B
5320 Version 01
5321 UID Size 04
5322 UID 000003E8
5326 GID Size 04
5327 GID 000003E8

532B END CENTRAL HEADER 06054B50
532F Number of this disk 0000
5331 Central Dir Disk no 0000
5333 Entries in this disk 0002
5335 Total Entries 0002
5337 Size of Central Dir 00000096
533B Offset to Central Dir 00005295
533F Comment Length 0000
Done

zipgrep命令

zipgrep 命令将使用 grep 类的功能来找到压缩文件中的特定内容。如果文件已加密,则需要为要检查的每个文件输入为加密所提供的密码。如果只想检查归档文件中单个文件的内容,请将其名称添加到 zipgrep 命令的末尾,如下所示。

$ zipgrep hazard twofiles.zip file1
[twofiles.zip] file1 password:
Certain pesticides should be banned since they are hazardous to the environment.

zipinfo 命令

zipinfo 命令提供有关压缩文件内容的信息,无论是否加密。这包括文件名、大小、日期和权限。

$ zipinfo twofiles.zip
Archive: twofiles.zip
Zip file size: 21313 bytes, number of entries: 2
-rw-rw-r-- 3.0 unx 58021 Tx defN 19-Jan-15 13:25 file1
-rw-rw-r-- 3.0 unx 58933 Tx defN 19-Jan-15 13:34 file2
2 files, 116954 bytes uncompressed, 20991 bytes compressed: 82.1%

zipnote 命令

zipnote 命令可用于从 zip 归档中提取注释或添加注释。要显示注释,只需在命令前面加上归档名称即可。如果之前未添加任何注释,你将看到类似以下内容:

$ zipnote twofiles.zip
@ file1
@ (comment above this line)
@ file2
@ (comment above this line)
@ (zip file comment below this line)

如果要添加注释,请先将 zipnote 命令的输出写入到文件:

$ zipnote twofiles.zip > comments

接下来,编辑你刚刚创建的文件,将注释插入到 (comment above this line) 行上方。然后使用像这样的 zipnote 命令添加注释:

$ zipnote -w twofiles.zip < comments

zipsplit 命令

当归档文件太大时,可以使用 zipsplit 命令将一个 zip 归档文件分解为多个 zip 归档文件,这样你就可以将其中某一个文件放到小型 U 盘中。最简单的方法似乎是为每个部分的压缩文件指定最大大小,此大小必须足够大以容纳最大的所包含的文件。

$ zipsplit -n 12000 twofiles.zip
2 zip files will be made (100% efficiency)
creating: twofile1.zip
creating: twofile2.zip
$ ls twofile*.zip
-rw-rw-r-- 1 shs shs 10697 Jan 15 14:52 twofile1.zip
-rw-rw-r-- 1 shs shs 10702 Jan 15 14:52 twofile2.zip
-rw-rw-r-- 1 shs shs 21377 Jan 15 14:27 twofiles.zip

请注意,提取的文件是如何依次命名为 twofile1twofile2 的。

总结

zip 命令及其一些压缩工具变体,对如何生成和使用压缩文件归档提供了很多控制。


via: https://www.networkworld.com/article/3333640/linux/zipping-files-on-linux-the-many-variations-and-how-to-use-them.html

作者:Sandra Henry-Stocker 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

本文向你展示了如何在 Ubuntu 和其他 Linux 发行版中创建一个 zip 文件夹。终端和 GUI 方法都有。

zip 是最流行的归档文件格式之一。使用 zip,你可以将多个文件压缩到一个文件中。这不仅节省了磁盘空间,还节省了网络带宽。这就是为什么你几乎一直会看到 zip 文件的原因。

作为普通用户,大多数情况下你会在 Linux 中解压缩文件夹。但是如何在 Linux 中压缩文件夹?本文可以帮助你回答这个问题。

先决条件:验证是否安装了 zip

通常 zip) 已经安装,但验证下也没坏处。你可以运行以下命令来安装 zipunzip。如果它尚未安装,它将立即安装。

sudo apt install zip unzip

现在你知道你的系统有 zip 支持,你可以继续了解如何在 Linux 中压缩一个目录。

在 Linux 命令行中压缩文件夹

zip 命令的语法非常简单。

zip [option] output_file_name input1 input2

虽然有几个选项,但我不希望你将它们混淆。如果你只想要将一堆文件变成一个 zip 文件夹,请使用如下命令:

zip -r output_file.zip file1 folder1

-r 选项将递归目录并压缩其内容。输出文件中的 .zip 扩展名是可选的,因为默认情况下会添加 .zip。

你应该会在 zip 操作期间看到要添加到压缩文件夹中的文件。

zip -r myzip abhi-1.txt abhi-2.txt sample_directory
  adding: abhi-1.txt (stored 0%)
  adding: abhi-2.txt (stored 0%)
  adding: sample_directory/ (stored 0%)
  adding: sample_directory/newfile.txt (stored 0%)
  adding: sample_directory/agatha.txt (deflated 41%)

你可以使用 -e 选项在 Linux 中创建密码保护的 zip 文件夹

你并不是只能通过终端创建 zip 归档文件。你也可以用图形方式做到这一点。下面是如何做的!

在 Ubuntu Linux 中使用 GUI 压缩文件夹

虽然我在这里使用 Ubuntu,但在使用 GNOME 或其他桌面环境的其他发行版中,方法应该基本相同。

如果要在 Linux 桌面中压缩文件或文件夹,只需点击几下即可。

进入到你想将文件(和文件夹)压缩到一个 zip 文件夹的所在文件夹。

在这里,选择文件和文件夹。现在,右键单击并选择“压缩”。你也可以对单个文件执行相同操作。

Select the files, right click and click compress

现在,你可以使用 zip、tar xz 或 7z 格式创建压缩归档文件。如果你好奇,这三个都是各种压缩算法,你可以使用它们来压缩文件。

输入一个你想要的名字,并点击“创建”。

Create archive file

这不会花很长时间,你会同一目录中看到一个归档文件。

好了,就是这些。你已经成功地在 Linux 中创建了一个 zip 文件夹。

我希望这篇文章能帮助你了解 zip 文件。请随时分享你的建议。


via: https://itsfoss.com/linux-zip-folder/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

RAR 是一种非常好的归档文件格式。但相比之下 7-zip 能提供了更好的压缩率,并且默认情况下还可以在多个平台上轻松支持 Zip 文件。不过 RAR 仍然是最流行的归档格式之一。然而 Ubuntu 自带的归档管理器却不支持提取 RAR 文件,也不允许创建 RAR 文件。

办法总比问题多。只要安装 unrar 这款由 RARLAB 提供的免费软件,就能在 Ubuntu 上支持提取 RAR 文件了。你也可以安装 rar 试用版来创建和管理 RAR 文件。

RAR files in Ubuntu Linux

提取 RAR 文件

在未安装 unrar 的情况下,提取 RAR 文件会报出“未能提取”错误,就像下面这样(以 Ubuntu 18.04 为例):

Error in RAR extraction in Ubuntu

如果要解决这个错误并提取 RAR 文件,请按照以下步骤安装 unrar

打开终端并输入:

sudo apt-get install unrar

安装 unrar 后,直接输入 unrar 就可以看到它的用法以及如何使用这个工具处理 RAR 文件。

最常用到的功能是提取 RAR 文件。因此,可以通过右键单击 RAR 文件并执行提取,也可以借助此以下命令通过终端执行操作:

unrar x FileName.rar

结果类似以下这样:

Using unrar in Ubuntu

如果压缩文件没放在家目录中,就必须使用 cd 命令移动到目标目录下。例如 RAR 文件如果在 Music 目录下,只需要使用 cd Music 就可以移动到相应的目录,然后提取 RAR 文件。

创建和管理 RAR 文件

Using rar archive in Ubuntu Linux

unrar 不允许创建 RAR 文件。因此还需要安装 rar 命令行工具才能创建 RAR 文件。

要创建 RAR 文件,首先需要通过以下命令安装 rar

sudo apt-get install rar

按照下面的命令语法创建 RAR 文件:

rar a ArchiveName File_1 File_2 Dir_1 Dir_2

按照这个格式输入命令时,它会将目录中的每个文件添加到 RAR 文件中。如果需要某一个特定的文件,就要指定文件确切的名称或路径。

默认情况下,RAR 文件会放置在家目录中。

以类似的方式,可以更新或管理 RAR 文件。同样是使用以下的命令语法:

rar u ArchiveName Filename

在终端输入 rar 就可以列出 RAR 工具的相关命令。

总结

现在你已经知道如何在 Ubuntu 上管理 RAR 文件了,你会更喜欢使用 7-zip、Zip 或 Tar.xz 吗?

欢迎在评论区中评论。


via: https://itsfoss.com/use-rar-ubuntu-linux/

作者:Ankush Das 选题:lujun9972 译者:HankChow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

当在备份重要文件和通过网络发送大文件的时候,对文件进行压缩非常有用。请注意,压缩一个已经压缩过的文件会增加额外开销,因此你将会得到一个更大一些的文件。所以,请不要压缩已经压缩过的文件。在 GNU/Linux 中,有许多程序可以用来压缩和解压缩文件。在这篇教程中,我们仅学习其中两个应用程序。

在类 Unix 系统中,最常见的用来压缩文件的程序是:

  1. gzip
  2. bzip2

1. 使用 gzip 程序来压缩和解压缩文件

gzip 是一个使用 Lempel-Ziv 编码(LZ77)算法来压缩和解压缩文件的实用工具。

1.1 压缩文件

如果要压缩一个名为 ostechnix.txt 的文件,使之成为 gzip 格式的压缩文件,那么只需运行如下命令:

$ gzip ostechnix.txt

上面的命令运行结束之后,将会出现一个名为 ostechnix.txt.gz 的 gzip 格式压缩文件,代替了原始的 ostechnix.txt 文件。

gzip 命令还可以有其他用法。一个有趣的例子是,我们可以将一个特定命令的输出通过管道传递,然后作为 gzip 程序的输入来创建一个压缩文件。看下面的命令:

$ ls -l Downloads/ | gzip > ostechnix.txt.gz

上面的命令将会创建一个 gzip 格式的压缩文件,文件的内容为 Downloads 目录的目录项。

1.2 压缩文件并将输出写到新文件中(不覆盖原始文件)

默认情况下,gzip 程序会压缩给定文件,并以压缩文件替代原始文件。但是,你也可以保留原始文件,并将输出写到标准输出。比如,下面这个命令将会压缩 ostechnix.txt 文件,并将输出写入文件 output.txt.gz

$ gzip -c ostechnix.txt > output.txt.gz

类似地,要解压缩一个 gzip 格式的压缩文件并指定输出文件的文件名,只需运行:

$ gzip -c -d output.txt.gz > ostechnix1.txt

上面的命令将会解压缩 output.txt.gz 文件,并将输出写入到文件 ostechnix1.txt 中。在上面两个例子中,原始文件均不会被删除。

1.3 解压缩文件

如果要解压缩 ostechnix.txt.gz 文件,并以原始未压缩版本的文件来代替它,那么只需运行:

$ gzip -d ostechnix.txt.gz

我们也可以使用 gunzip 程序来解压缩文件:

$ gunzip ostechnix.txt.gz

1.4 在不解压缩的情况下查看压缩文件的内容

如果你想在不解压缩的情况下,使用 gzip 程序查看压缩文件的内容,那么可以像下面这样使用 -c 选项:

$ gunzip -c ostechnix1.txt.gz

或者,你也可以像下面这样使用 zcat 程序:

$ zcat ostechnix.txt.gz

你也可以通过管道将输出传递给 less 命令,从而一页一页的来查看输出,就像下面这样:

$ gunzip -c ostechnix1.txt.gz | less
$ zcat ostechnix.txt.gz | less

另外,zless 程序也能够实现和上面的管道同样的功能。

$ zless ostechnix1.txt.gz

1.5 使用 gzip 压缩文件并指定压缩级别

gzip 的另外一个显著优点是支持压缩级别。它支持下面给出的 3 个压缩级别:

  • 1 – 最快 (最差)
  • 9 – 最慢 (最好)
  • 6 – 默认级别

要压缩名为 ostechnix.txt 的文件,使之成为“最好”压缩级别的 gzip 压缩文件,可以运行:

$ gzip -9 ostechnix.txt

1.6 连接多个压缩文件

我们也可以把多个需要压缩的文件压缩到同一个文件中。如何实现呢?看下面这个例子。

$ gzip -c ostechnix1.txt > output.txt.gz
$ gzip -c ostechnix2.txt >> output.txt.gz

上面的两个命令将会压缩文件 ostechnix1.txtostechnix2.txt,并将输出保存到一个文件 output.txt.gz 中。

你可以通过下面其中任何一个命令,在不解压缩的情况下,查看两个文件 ostechnix1.txtostechnix2.txt 的内容:

$ gunzip -c output.txt.gz
$ gunzip -c output.txt
$ zcat output.txt.gz
$ zcat output.txt

如果你想了解关于 gzip 的更多细节,请参阅它的 man 手册。

$ man gzip

2. 使用 bzip2 程序来压缩和解压缩文件

bzip2gzip 非常类似,但是 bzip2 使用的是 Burrows-Wheeler 块排序压缩算法,并使用 哈夫曼 Huffman 编码。使用 bzip2 压缩的文件以 “.bz2” 扩展结尾。

正如我上面所说的, bzip2 的用法和 gzip 几乎完全相同。只需在上面的例子中将 gzip 换成 bzip2,将 gunzip 换成 bunzip2,将 zcat 换成 bzcat 即可。

要使用 bzip2 压缩一个文件,并以压缩后的文件取而代之,只需运行:

$ bzip2 ostechnix.txt

如果你不想替换原始文件,那么可以使用 -c 选项,并把输出写入到新文件中。

$ bzip2 -c ostechnix.txt > output.txt.bz2

如果要解压缩文件,则运行:

$ bzip2 -d ostechnix.txt.bz2

或者,

$ bunzip2 ostechnix.txt.bz2

如果要在不解压缩的情况下查看一个压缩文件的内容,则运行:

$ bunzip2 -c ostechnix.txt.bz2

或者,

$ bzcat ostechnix.txt.bz2

如果你想了解关于 bzip2 的更多细节,请参阅它的 man 手册。

$ man bzip2

总结

在这篇教程中,我们学习了 gzipbzip2 程序是什么,并通过 GNU/Linux 下的一些例子学习了如何使用它们来压缩和解压缩文件。接下来,我们将要学习如何在 Linux 中将文件和目录归档。

干杯!


via: https://www.ostechnix.com/how-to-compress-and-decompress-files-in-linux/

作者:SK 选题:lujun9972 译者:ucasFL 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出