split呼吁_Linux split呼吁:切割(拆分)文件

2021-03-04 07:59

15 分钟之后,我要去伴侣家集会。我规划从我的台式机上把一部 700MB 巨细的美国大片拷贝出来,带到伴侣家去看,但是我的两个优盘都只有 512MB,这让我如何是好?

别急,用 10 分钟赶紧来认识一下我们的 split 拆分小妙手,一切问题将迎刃而解。当碰着大文件而苦不堪言的时候,split 就会像天使一样补救我们于水火之中。 合久必分 闲言少叙,我们此刻就来先容拆分的要领。先利用 dd 呼吁来生成一个 700MB 文件来作为我们的拆分工具: [root@roclinux ~]$ dd if=http://c.biancheng.net/dev/zero bs=1024 count=700000 of=king_of_ring.avi 700000+0 records in 700000+0 records out 716800000 bytes (717 MB) copied, 12.9189 s, 55.5 MB/s [root@roclinux ~]$ ls -l king_of_ring.avi -rw-r--r-- 1 root root 716800000 Apr 12 13:01 king_of_ring.avi
美国大片的文件巨细是 700MB,而我手边仅有的两个优盘,都是 512MB 巨细的。我规划把文件以 400MB 作为一个拆分单元,来举办拆分。这里利用到了 split 的-b选项,来指定每个拆分文件的巨细: [root@roclinux ~]$ split -b 400M king_of_ring.avi [root@roclinux ~]$ ls -l total 1400008 -rw-r--r-- 1 root root 716800000 Apr 12 13:01 king_of_ring.avi -rw-r--r-- 1 root root 419430400 Apr 12 13:04 xaa -rw-r--r-- 1 root root 297369600 Apr 12 13:04 xab
看!两全完毕!咦,怎么多出了 xaa 和 xab 两个文件,这么奇怪的名字?

是的,你没看错,在没有明晰指定拆分后文件的定名方法的环境下,split 会默认回收 x 字符作为文件前缀,回收雷同 aa、ab、ac 的字符串依次作为文件后缀。于是,就呈现了我们上面看到的 xaa、xab 了。

从文件巨细来看,如我们所愿,影戏文件简直被切割成了一个 400MB 的文件、一个 300MB 的文件,终于可以装到两个优盘里了。 知其然,知其所以然 知道了拆分呼吁后,我们来一起进修一下 split 的呼吁名目和常用选项。

split 的浸染很好描写,就是将文件凭据必然法则举办拆分。一般环境下,我们可以凭据文件巨细来举办拆分,假如是文本文件的话,还可以凭据行数来举办拆分,默认是 1000 行作为一个拆分单元。

默认环境下,支解后的文件的名称会以 x 作为前缀,以 aa、ab、ac 这样的双字母名目作为后缀,形成 xaa、xab 这样的名称名目。

我们来一起看看 split 的呼吁名目: split [-b ][-C ][-][-l ][要切割的文件][输出文件名前缀][-a ]
最常用的选项,都在这里了:

-b<字节>:指定按几多字节举办拆分,也可以指定 K、M、G、T 等单元。

-<行数>或-l<行数>:指定每几多行要拆分成一个文件。

输出文件名前缀:配置拆分后的文件的名称前缀,split 会自动在前缀后加上编号,默认从 aa 开始。

-a<后缀长度>:默认的后缀长度是 2,也就是按 aa、ab、ac 这样的名目依次编号。

分久必合 完成了美国大片的拆分,我赶赴伴侣家,打开他的电脑,优盘插上,利用 cat 呼吁将拆分文件 xaa 和 xab 归并成一个文件,可以看出归并后的文件和源文件的巨细是一致的: [root@roclinux ~]$ cat xaa xab > king_of_ring_merge.avi [root@roclinux ~]$ ls -l total 2100012 -rw-r--r-- 1 root root 716800000 Apr 12 13:01 king_of_ring.avi -rw-r--r-- 1 root root 716800000 Apr 12 13:07 king_of_ring_merge.avi -rw-r--r-- 1 root root 419430400 Apr 12 13:04 xaa -rw-r--r-- 1 root root 297369600 Apr 12 13:04 xab
对了,假如是在 Windows 下的话,我们要先运行 cmd,然后用 copy 呼吁来举办文件的归并: copy /b xaa + xab king_of_ring.avi
名目上和 Linux 有些区别,但道理是一样的。 配置拆分文件的名称前缀 上面例子中,我们没有指定拆分文件的名称前缀,功效拆分后的文件名都是 aa、ab 这样的名称,这样的名称既不达意也不雅观。

下面的例子,我们实验以 king_of_ring_part_ 作为拆分后文件的名称前缀: #我们指定了king_of_ring_part_前缀 [root@roclinux ~]$ split -b 400m king_of_ring.avi king_of_ring_part_ #可以看到, 文件名的可读性提高了许多 [root@roclinux ~]$ ls -l king* -rw-r--r-- 1 root root 716800000 Feb 25 18:29 king_of_ring.avi -rw-r--r-- 1 root root 419430400 Feb 25 19:24 king_of_ring_part_aa -rw-r--r-- 1 root root 297369600 Feb 25 19:24 king_of_ring_part_ab
文件名的可读性是不是提高了不少,从文件名称就可以看出来是美国大片的拆分文件啦。 配置数字后缀 假如各人看不惯以 aa、ab 这种字母作为文件后缀,我们还可以通过-d选项来指定命字形式的文件后缀: #利用了-d选项 [root@roclinux ~]$ split -b 400m -d king_of_ring.avi king_of_ring_part_ #后缀从本来的aa、ab酿成了00、01 [root@roclinux ~]$ ls -l king* -rw-r--r-- 1 root root 716800000 Feb 25 18:29 king_of_ring.avi -rw-r--r-- 1 root root 419430400 Feb 25 19:24 king_of_ring_part_00 -rw-r--r-- 1 root root 297369600 Feb 25 19:24 king_of_ring_part_01
对付中国人来说,数字形式的后缀,安博体育app,增加了文件名称的可读性。 凭据行数举办拆分 前面我们讲的是凭据文件巨细(如 400MB)举办文件拆分的要领,可是并非所有环境都适合于用文件巨细作为拆分单位。好比,我们但愿把 /etc/passwd 文件凭据一个文件 10 行记录的方法举办拆分,又该怎么操纵呢? #利用-N来指定拆分的行数,本例中为-10 [root@roclinux ~]$ split -d -10 /etc/passwd my_passwd_ #可以看到拆分乐成 [root@roclinux ~]$ wc -l my_passwd_* 10 my_passwd_00 10 my_passwd_01 5 my_passwd_02 25 total 归并后的校验不行少 需要留意的是,在通过网络来传输大文件,可能在设备之间复制大文件的时候,大概会呈现传输前后数据纷歧致的环境。

利用 split 来拆分大文件仅仅是故事的开始,操纵完毕后化零为整、完璧归赵才是完美的了局。因此需要在归并文件后举办文件的完整性校验,推荐利用 md5sum 来计较和比对前后两个大文件的 md5 值。 #对原先的文件计较md5值 [root@roclinux ~]$ md5sum king_of_ring.avi eacff27bf2db99c7301383b7d8c1c07c king_of_ring.avi #对归并后的文件计较md5值, 并与原值举办较量 [root@roclinux ~]$ md5sum king_of_ring_merge.avi eacff27bf2db99c7301383b7d8c1c07c king_of_ring_merge.avi 假如前后一致,那么恭喜你,文件归并乐成!

好了,split 学完了,我们也可以和伴侣一起浏览惊险刺激的美国大片了!

扫描二维码分享到微信

在线咨询
联系电话

4008-012-833