linux下压缩并分割稀疏文件

稀疏文件是指一个文件中大部分内容都是空字符的文件。

如虚拟机创建的100G的磁盘文件是,但系统不会马上分割出100G的空间,而是仅标识出虚拟硬盘文件是稀疏文件,待到数据存储时,再分配空间,这样可以大大的节约磁盘利用率。

稀疏文件在进行cp/scp/split/cat时,会由标识的稀疏文件变为非稀疏文件文件,而导致占用大量的空间。

这不是我们要的结果,可以用下面的方式来复制/移动/分割稀疏文件。

创建测试用稀疏文件,大小1G:

dd if=/dev/zero of=test_sparse.log bs=1 count=1 seek=1024M

查看文件:

ls -alsh test_sparse.log

4.0K -rw-rw-r-- 1 lidq lidq 1.1G Jun  8 15:10 test_sparse.log

du -sh test_sparse.log

4.0K test_sparse.log

可以看到两者的文件大小是不一样的。

用 tar 压缩稀疏文件:

tar -zcSvf  test_sparse.log.tar.gz test_sparse.log

分割压缩文件:

split -b 1M -d -a 4 test_sparse.log.tar.gz test_sparse.log.tar.gz-

合并分割文件:

cat test_sparse.log.tar.gz-* > test_sparse.log.tar.gz

稀疏文件(百度百科):http://baike.baidu.com/item/%E7%A8%80%E7%96%8F%E6%96%87%E4%BB%B6

时间: 2024-12-31 04:05:29

linux下压缩并分割稀疏文件的相关文章

Linux培训教程 linux系统下分割大文件的方法

在linux中分割大文件,比如一个5gb日志文件,需要把它分成多个小文件,分割后以利于普通的文本编辑器读取. 有时,需要传输20gb的大文件,Linux培训 教程件到另一台服务器,也需要把它分割成多个文件,这样便于传输数据. 以下通过五个不同的例子,来讲解Linux下分割大文件的方法,供大家参考. 例1.以每个文件1000行分割 split命令分割文件成每个文件1000行,并且文件名依次为 [前缀]aa,[前缀]ab, [前缀]ac等,默认的前缀是X,每个文件的行数为1000行. 命令: 复制代

Linux下平均分割大文件

下面表示将 dataset分割成小文件,每个10000行,以数字作为后缀形式,一共占两位 split -l 10000 dataset -d -a 2 partition_dataset_ 如果有不明白的 split --help 或 man split 合并小文件为一个大文件: find dir -type f -name "partition_dataset_*" -print | xargs cat > final_results 原文:http://blog.csdn.n

Linux的Split 命令 (文件分割)

功能能说明:分割文件.############################################################################# Split:按指定的行数截断文件 格式: split [-n] file [name] 参数说明: -n: 指定截断的每一文件的长度,不指定缺省为1000行 file: 要截断的文件 name: 截断后产生的文件的文件名的开头字母,不指定,缺省为x,即截断后产生的文件的文件名为xaa,xab....直到xzz #####

Linux文件空洞与稀疏文件 转

1.Linux文件空洞与稀疏文件 2.文件系统数据存储 3.文件系统调试 文件空洞 在UNIX文件操作中,文件位移量可以大于文件的当前长度在这种情况下,对该文件的下一次写将延长该文件,并在文件中构成一个空洞.位于文件中但没有写过的字节都被设为 0. 如果 offset 比文件的当前长度更大,下一个写操作就会把文件“撑大(extend)”在文件里创造“空洞(hole)”.没有被实际写入文件的所有字节由重复的 0 表示.空洞是否占用硬盘空间是由文件系统(file system)决定的 稀疏文件(Sp

linux下利用split分割大文件

使用split分割大文件 在我们的实际生产环境中,会产生许许多多的大文件,这些文件的大小不一,有的甚至会有好几十T的大小,那么我们对这些文件进行分析时,又该如何下手呢?这时我们便可以使用linux下自带的一个命令split来实现文件的分割. Split对文件的分割支持按照行数的分割,以及支持按照大小分割两种模式.要说明的是,在二进制文件中,没有'行'的概念,所以二进制文件无法使用行分割,而只能按照文件的大小来进行分割. 本次实验自行分割出一个500M大小的文件,如下图: 我们来对这个模拟文件进行

linux下分割合并文件命令

分割与合并文件操作. 分割与合并文件 有时候大文件分割后更方便传输.以一张图片为例:分割:默认分割 12345678910111213 [[email protected] shell]$ ls -lh总用量 1.5M-rwxrwxrwx 1 jimo jimo 1.5M 9月 17 20:31 1.png[[email protected] shell]$ split 1.png [[email protected] shell]$ ls -lh总用量 2.9M-rwxrwxrwx 1 jim

向linux服务器上传下载文件方式收集

向linux服务器上传下载文件方式收集 1. scp [优点]简单方便,安全可靠:支持限速参数[缺点]不支持排除目录[用法] scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 . 命令格式: scp [参数] <源地址(用户名@IP地址或主机名)>:<文件路径> <目的地址(用户名 @IP 地址或主机名)>:<文件路径> 举例: scp /home/work/source.

logrotate分割日志文件

昨天参与做的线上项目上线了,看了下log文件居然还没有分割,考虑到可能导致log文件很大造成性能下降,赶紧做了下日志分割.Linux下有个logrotate工具可以协助日志分割,只需要配置一下参数就可以了,非常方便,于是采用这种方式直接配置了一下. 我是用来做nginx日志文件分割的,我的配置文件如下: 在/etc/logrotate.d/目录下创建一个配置文件例如nginx,文件内容如下: /search/nginx/logs/access_log /search/nginx/logs/err

linux和windows互传文件/用户配置文件和密码配置文件/用户组管理/用户管理

2.27linux和windows互传文件 3.1 用户配置文件和密码配置文件 3.2 用户组管理 3.3 用户管理 linux和windows互传文件 显示日期date [[email protected]_1 ~]# date 2017年 11月 21日 星期二 08:38:25 CST 显示系统语言 [[email protected]_1 ~]# echo $LANG zh_CN.UTF-8 [[email protected]_1 ~]# stat 1.txt.bak 文件:"1.tx