Linux Deepin分割及重新合并文件

本文发布时间: 2019-Mar-22
有时我们需要将一个文件分割成多个部分,或者将一个文件的各个部分重新合并成为一个文件,该怎样做呢?分割与重新合并文件时,我们分别需要用到 split 和 cat 命令。分割文件假设我们在当前目录下只有一个文件 mysong.mp3,其大小为 5M:$ ls -lhtotal 5.0M-rw-rw-r-- 1 lee lee 5.0M Nov 30 15:43 mysong.mp3假设我们要把它分为大小相等的五部分,并以数字作为后缀。我们需到用到 split 命令。其基本句法为:#crayon-50b8905cb5de9 .crayon-plain { font-size: 12px !important; line-height: 16px !important;}$ split [选项] [输入] [输出文件名前缀]因此在这里,我们可以这样做:#crayon-50b8905cb5e36 .crayon-plain { font-size: 12px !important; line-height: 16px !important;}$ split -n 5 -d mysong.mp3 mysong.mp3.part$ ls -lhtotal 10M-rw-rw-r-- 1 lee lee 5.0M Nov 30 15:43 mysong.mp3-rw-rw-r-- 1 lee lee 1019K Nov 30 15:58 mysong.mp3.part00-rw-rw-r-- 1 lee lee 1019K Nov 30 15:58 mysong.mp3.part01-rw-rw-r-- 1 lee lee 1019K Nov 30 15:58 mysong.mp3.part02-rw-rw-r-- 1 lee lee 1019K Nov 30 15:58 mysong.mp3.part03-rw-rw-r-- 1 lee lee 1019K Nov 30 15:58 mysong.mp3.part04假设我们要上传一个附件,其大小不能超过 0.9M,通过计算:0.9 x 1024 = 921.6(为了保险起见,我们舍去了小数点后的值)$ rm mysong.mp3.part0{0..4}$ lsmysong.mp3$ split -b 921k -d mysong.mp3 mysong.mp3.partlee@lee-work ~/test $ lsmysong.mp3 mysong.mp3.part01 mysong.mp3.part03 mysong.mp3.part05mysong.mp3.part00 mysong.mp3.part02 mysong.mp3.part04lee@lee-work ~/test $ ls -lhtotal 10M-rw-rw-r-- 1 lee lee 5.0M Nov 30 15:43 mysong.mp3-rw-rw-r-- 1 lee lee 921K Nov 30 16:09 mysong.mp3.part00-rw-rw-r-- 1 lee lee 921K Nov 30 16:09 mysong.mp3.part01-rw-rw-r-- 1 lee lee 921K Nov 30 16:09 mysong.mp3.part02-rw-rw-r-- 1 lee lee 921K Nov 30 16:09 mysong.mp3.part03-rw-rw-r-- 1 lee lee 921K Nov 30 16:09 mysong.mp3.part04-rw-rw-r-- 1 lee lee 490K Nov 30 16:09 mysong.mp3.part05-b: 每个输出文件的大小,其单位可为 KB 1000, K 1024, MB 1000*1000, M 1024 及 G, T, P, E, Z, Y。-d: 使用数字后缀而非字母。-n: 生成 N 个部分的输出文件。合并文件假设我们需要将上面的 mysong.mp3.part0{0..5} 重新合并为一个文件,需要使用 cat 命令。cat 为 concatenate 的缩略词,用于联结多个文件或标准输入并显示为标准输出。其基本句式为:#crayon-50b8905cb5ed0 .crayon-plain { font-size: 12px !important; line-height: 16px !important;}$ cat [选项] [文件]对于这个例子,我们可以这样做:$ cat mysong.mp3.part* > mysong-reassembled.mp3$ lsmysong.mp3 mysong.mp3.part01 mysong.mp3.part03 mysong.mp3.part05mysong.mp3.part00 mysong.mp3.part02 mysong.mp3.part04 mysong-reassembled.mp3这里我们再延伸地讲一下 cat 的用法。cat 会读入你给它的任何文件(作为参数),然后会逐一将各个文件输出为标准输出。它会联结任何你给它的文件(作为参数)。举个简单的例子:#crayon-50b8905cb5f69 .crayon-plain { font-size: 12px !important; line-height: 16px !important;}$ cat我们会看到,cat 并没有把 shell 提示符还给我们,而是一直“停”在那里。这是怎么回事?当我们不给 cat 任何参数时运行 cat 时, cat 会从标准输出中读入,以现在的情况,就是你的键盘。也就是说,cat 仍然在等待标准输入,任何我们键入的字符都会发送给 cat,在你敲下回车时,cat 就会像往常一样将标准输入显示输出到标准输出:#crayon-50b8905cb5fb6 .crayon-plain { font-size: 12px !important; line-height: 16px !important;}$ catnani?nani?许多网上的例子在我们想要读入文件的内容时总是告诉我们使用 cat。这是不必要的!cat 只在联结多个文件或快速地在命令行下查看一文件内容时是实用的。在脚本中不要使用 cat 通过管道将一文件输出到命令。请记住这个提示。在不必要的时候使用 cat 只会创建额外的进程,而且会拖慢运行速度,因为 cat 不能够分辨它读入的文件的类型与作用。如下面的这个例子:#crayon-50b8905cb6003 .crayon-plain { font-size: 12px !important; line-height: 16px !important;}$ cat apple.txtcoreworm seedjewel$ cat apple.txt | wc #bad,bad,bad! 3 4 21$在这里我们只需要将 apple.txt 这个文本作为 wc 的参数,或者使用重定向 wc < apple.txt。使用 cat 不仅全无必要,而且导致了额外进程的运行。还有一点需要提醒的是,不要用归档命令如(rar)去解压使用 split 分割的压缩档案,需要使用 cat 合并压缩文件后再正常解压,否则会出错。


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:11pm
栏目列表