使用"tar"
让我们面对现实吧,电脑并不完美。Linux是一个“近乎完美”的操作系统,但事情确实会发生,有时会丢失数据。避免问题的最好方法是备份文件。Linux提供了两个实现这一点的关键程序:“tar”和“gzip”
首先,我们将从“tar”开始。这个程序将各种文件组合成一个包,通常称为“tarball”。假设你有一些文件。
你有:
notes_1.txt
notes_2.txt
notes_3.txt
notes_4.txt
notes_5.txt
然后将它们放在一个名为/linux_course的目录中。比方说,你想要备份它们,把它们放在软盘上。您可以输入以下命令来将它们打包到tarball中。
tar -cvf linux_notes.tar notes*.txt
首先,你有tar,程序的名称。然后有选项c(--create) v(--verbose-显示它们是什么文件) (f--file-创建一个文件-应该总是最后一个选项) 然后你有要创建的文件的名称(linux_notes.tar)和要备份的文件(notes*.txt)。
这假定目录中可能有您不想包含的其他文件。如果您想包含目录中的所有文件,只需用*.*替换notes*.txt。
如果您拥有良好的数据存储功能(Jaz或Zip驱动器、CD写入器或磁带备份驱动器),您可能希望备份整个目录及其相应的子目录。然后在目录中输入/home/bob/命令:
tar -cvf bob_backup.tar *
使用一个星号,您将包含没有扩展名的目录和文件(my_file与my_file.txt相对)。准备好得到一个相当大的tarball。
这是备份过程的第一步。现在我们来看第二步;压缩这些文件。
使用"gzip"
正如我们所提到的,“tar”只是将文件组装成一个文件。这些文件的大小没有减少(tarball甚至可能更大!)现在,我们必须再做一件事来将这个文件缩小到更易于管理的大小:使用“gzip”。
gzip是Linux的首选压缩工具。要减小tar文件的大小,可以发出以下命令:
gzip your_tar_file.tar
tar文件将被压缩。您还可以使用相同的命令压缩常规文件,但是gzip主要用于tarball。
结果将是这样一个文件:your_tar_file.tar.gz
这两个文件扩展名向我们展示了该文件是一个tarball,它是用“gzip”格式压缩的。现在,您可以按照您认为合适的方式继续存储该文件。
将所有的东西放在一起
tar
tar中内置了一个选项,可以使用“gzip”在生成tarball的同时压缩文件。如果将z添加到选项中,并将文件的名称更改为.gz扩展名,则整个过程只需一步。我们之前的例子将修改为:
tar -czvf bob_backup.tar.gz *
记住f应该总是最后一个选项。
UnTar
使用"tar"和"gzip"可以假定您想要在某一点或另一点"untar "和“unzip“这些文件。
最简单的方法是对整个过程使用“tar”。你会找到问题中的压缩tarball,然后问自己一个问题:
我对tarball中的文件做了任何修改吗?如果你这样做了,那么你就得到了一个旧的tarball。如果将其解压缩到相同的目录中,就会覆盖现有的目录。如果您想要旧文件的副本,请将其解压缩到另一个目录中。如果您不想要旧的文件,那么您应该创建一个新的tarball。这是非常标准的备份实践。
当您决定要做什么时,继续执行“untarring”,发出以下命令:
tar -zxvpf my_tar_file.tar.gz
我用了我喜欢的选项。我将解释它们:
-z - 首先解压文件
-x - 从tarball中提取文件
-v - 详细的 (tar告诉你它正在提取什么文件)
-p - 保存原始文件的日期和权限
-f - 在请求中使用文件 (如果你不指定这个选项, tar 只会等待着什么也不做 )
提取文件并保存原始tarball (my_tar_file.tar.gz)。
您还可以解压缩文件,然后单独使用gzip。只要把z选项从前面的例子中去掉,然后输入:
gzip -d my_tar_file.tar.gz
或者
gunzip my_tar_file.tar.gz
(gunzip“自动”运行gzip -d !)
如果你只是压缩了一个普通文件(而不是压缩包),那么这些命令非常有用。
其他压缩工具
zip
大多数Linux发行版都附带了其他压缩文件的工具。其中之一是zip,在MS-DOS/Windows世界中很有名。如果你打算压缩文件给(仍然)使用Windows操作系统的人,这可能是你最好的选择。如果有人给你一个压缩了“zip”的文件,你也可以使用unzip。
bzip2
还有一种工具正在Linux世界中迅速获得接受:bzip2。事实上,Linux内核源代码包通常是" bzipped"。当编译内核(从源代码为自己创建自定义内核)时,有一个选项可以创建压缩后的内核。这应该会在不久的将来成为正式的方式,所以了解“bzip2”可能是个好主意
对于所有实际用途,您将以与“gzip”相同的方式使用此工具。压缩因子应该更好一些。对于更高级的用户,有一些不同的选项。