在Unix/Linux系统中拆分文件

评论 0 浏览 0 2019-10-13

1.绪论

在这个简短的教程中,我们将看一下在Unix系统中分割文件的几种不同方式。

所有这些命令都是在Bash中测试的,但与平台无关。

2.使用split

分割文件最常见的方法之一是按给定的大小把它们分成几块。要做到这一点,我们可以使用split命令。

假设我们有一个50MB的文本文件,我们想把它分成五个10MB的部分。我们所要做的就是

split --bytes=10M data.txt dataPartPrefix

这将导致创建5个文件,其名称如下。

dataPartPrefixa
dataPartPrefixb
dataPartPrefixc
dataPartPrefixd
dataPartPrefixe

注意,我们的前缀名称后面会有以下字母。在命令中加入-d将使用从0开始的数字后缀,而不是字母后缀。

–bytes参数接受整数值或一个单位(例如:10K是10*1024)。1024次方的单位是K、M、G、T、P、E、Z、Y,1000次方的单位是KB、MB,等等。

我们还可以split将一个文件分成给定数量的大小相同的块

split --number=2 data.txt dataPartPrefix

这将创建两个文件,每个文件的大小为5MB。

dataPartPrefixa
dataPartPrefixb

如果我们正在拆分文本文件并希望按行拆分,我们可以这样做:

split -l 500 data.txt dataPartPrefix

这将导致一些文件的出现,这取决于原产地文件内容的长度。

为了把数据放回原处,我们可以使用cat

cat dataPartPrefix* > newData.txt

3.使用7-Zip拆分文件

我们也可以在创建7-Zip存档时分割一个文件。这将导致创建多个存档卷

让我们假设我们有同一个50MB的文本文件,我们想把它分成10MB的档案。我们所做的就是

7z a -v10m -mx0 data.7z data.tzt

10m是卷的大小,-mx0告诉7-Zip不使用压缩。

运行这个命令后,我们的目录中就会有以下文件。

data.txt
data.7z.001
data.7z.002
data.7z.003
data.7z.004
data.7z.005

为了找回原文件,我们应该简单地提取第一卷。

7z x data.7z.001

7-Zip会自动开始按顺序解压剩余的文件。

4.总结

在本教程中,我们已经学会了如何在Unix系统中分割文件,并对split和7-Zip命令进行了考察。

最后更新2022-12-03
0 个评论
标签