1.tar命令
1.1归档
tar可以将多个文件和文件夹保存为单个文件,同时还能保留所有的文件属性,如所有者,权限等。
eg: tar -cf output.tar client.c md5.txt //对文件client.c 和md5.txt 归档为output.tar文件 (-c代表创建文件;-f代表制定文件,而且-f应该是选项中的最后一个。)
eg: tar -tf output.tar //列出归档文件中包含的文件
eg: tar -tvf output.tar //加上参数-v显示更详细的信息 (-v代表冗长模式)
eg: tar -rvf output.tar new_file //向归档文件中添加新的文件new_file (-r代表追加新文件到已存在的归档文档中)
eg: tar -xf output.tar -C /home/mapgoo //将归档文件中的文件提取到/home/mapgoo目录中 (-x代表提取(exact)。-C代表提取到的目录,没有指定代表当前目录.)
eg: tar -xvf output.tar client.c //只提取文件client.c
eg: tar -Af output.tar output1.tar //拼接两个归档文件,将output1.tar中的文件也打包进output.tar
eg: tar -uf output.tar client.c //仅当client.c的时间戳比归档文件中的新时才追加进去
eg:tar -f output1.tar --delete md5.txt 从归档文件中删除md5.txt文件
eg: tar -cf arch.tar * --exclude "*.txt" //排除所有的txt文件,进行归档。(用--exclude[PATTERN] 排除匹配通配符样式的文件)
eg: tar -cf arch.tar * -X list //排除list文件中列出的文件,进行归档。
eg: tar -cvf output.tar *sh --totals //打印出归档了多少字节(用--totals可以在归档完成之后打印出总归档字节数)
1.2压缩
eg: tar -acvf archive.tar.gz *sh //tar能够通过查看输出或输入文件的扩展名来进行压缩。为了使tar支持扩展名自动进行压缩,使用-a或--auto-compress选项)
2. cpio命令归档
cpio命令类似于tar的归档格式,它用来将多个文件和文件夹存储为单个文件,同时保留所有文件属性,如权限,文件所有权等,不过cpio并不像tar那么常用。它多用于RPM软件包(Fedora使用这种格式),linux内核的initramfs文件等。
eg: echo file1 file2 file3 | cpio -ov >archive.cpio //归档
eg: cpio -it < archive.cpio //列出cpio归档文件中的内容
eg: cpio -id < archive.cpio //从cpio归档中提取文件
-o制定输出; -v用来打印归档文件列表;-i用来指定输入;-t表示列出归档文件中的内容;-d用来提取。
3. gzip命令 压缩
3.1 压缩
gzip只能压缩单个文件或数据流,而无法对目录和多个文件进行归档。因此需要先创建tar归档文件,然后再用gzip进行压缩。
eg: gzip filename //压缩 ,生成filename.gz压缩文件
eg: gunzip filename.gz //解压缩
eg: gzip -l filename.gz //列出压缩文件的属性
3.2压缩归档
第一种方法: tar -acvf archive.tar.gz *sh
第二种方法:
第一步:归档 tar -cvf archive.tar *sh
第二步:压缩 gzip archive.tar
3.3压缩率
1级的压缩率最低,但是压缩速度最快; 9级的压缩率最高,但是压缩速度最慢
eg: gzip -5 test.img //5级应该能在压缩速度和压缩比之间获得一个不错的平衡
4.bzip2命令 压缩
bzip2命令是另一种常用的工具,其功能和语法同gzip非常的类似。唯一的不同在于bzip2的压缩效率比gzip更高,但花费的时间比gzip更长
eg: bzip2 read.c //压缩read.c文件,生成read.c.bz2文件
eg:bunzip2 read.c.bz2 //解压缩
4.2归档,压缩
eg: tar -acvf archive.tar.bz2 *sh //归档压缩 (对比 tar -acvf archive.tar.gz *sh )
eg: tar -xjvf archive.tar.gz2 //解压缩 (对比 tar -xavf archive.tar.gz ) (-j表明该归档文件是bzip2格式)
5.zip命令 归档和压缩
eg: zip archive.zip [SOURCE FILES / DIRS ] //zip格式进行归档压缩
eg: unzip archive.zip //提取zip文件中的内容 (zip提取完后并不会删除文件,这点与unlzma和gunzip不同)
eg: zip file.zip -u newfile //更新压缩文件中的内容。(-u选项)
eg: zip -d file.zip file.txt //从压缩文件中删除内容(-d选项)
eg: zip -l file.zip 、、列出压缩文件中的内容
6.pbzip2命令 更快速的归档工具
我们目前已经看到的多数压缩命令只能利用单个处理器核心,所以速度并不会特别快,而pbzip2能够借助多个处理器核心来降低压缩文件所需要的时间。
6.1压缩单个文件
pbzip2 myfile.tar //pbzip2会自动检测系统中处理器核心的数量,然后将myfile.tar压缩成myfile.tar.bz2 。
6.2要将多个文件或目录进行归档及压缩,可以使用tar配合pbzip2来实现
tar -cf myfile.tar.bz2 --use-compress-prog=pbzip2 dir_to_compress/
或者
tar -c dir_to_compress/ | pbzip2 -c >myfile.tar.bz2
6.3从pbzip2格式的文件中进行提取
pbzip2 -dc myfile.tar.bz2 | tar x //如果是tar.bz2文件,我们可以一次性完成解压缩和提取工作
pbzip2 -d myfile.tar.bz2 //如果是经过pbzip2压缩过的归档文件
6.4手动制定处理器数量
pbzip2 -p4 myfile.tar //使用4个处理器核心
7.创建压缩文件系统
squashfs是一种具有超高压缩率的只读文件系统。如果需要采用超高的文件压缩率,又希望在无需解压的情况下读取少量文件,那么squashfs就能够大显身手了,解压体积较大的压缩文件可得花上一阵功夫。但如果将文件以环回形式挂载,那么速度会变的飞快,因为只有出现访问请求时,对应的那部分压缩文件才会被解压缩。
7.1创建squashfs文件
mksquashfs SOURCES compressedfs.squashfs //SOURCES部分可以是通配符或文件,目录路径(eg: mksquashffs /etc test.squashfs )
7.2 利用环回形式挂载squashfs文件
mount -o loop compressedfs.squashfs /mnt/squash //将文件挂载在/mnt/squash目录
7.3补充:在创建squashfs文件时排除部分文件
eg: mksquashfs /etc test.squashfs -e /etc/passwd /etc/shadow
eg: mksquashfs /etc/ test.squashfs -ef excludelist //文件excludelist列出了要排除的文件
8.使用rsync备份
rsync可以对位于不同位置的文件和目录进行同步,它利用差异计算以及压缩技术来最小化数据传输量。相对于cp命令,rsync的优势在于使用了高效的差异算法。另外还支持网络数据传输。在进行复制的同时,rsync会比较源端和目的端的文件,只有当文件有更新时才进行复制。rsync也支持压缩加密等多种特性。
8.1将源目录复制到目的端
rsync -av source_path destination_path //(-a表示要进行归档; -v表示在stdout上打印细节信息或进度)
eg: rsync -av ./shell/ mapgoo@192.168.1.142:/home/mapgoo //远程复制
8.2压缩数据传输
rsync -avz source_path destination_path //-z选项指定在网络传输时压缩数据
8.3对比两条命令的区别
rsync -av /home/test /home/backups (test文件夹会复制过去)
rsync -av /home/test/ /home/backups (不会复制test文件夹,只会复制里面的内容)
8.4排除部分文件
eg: rsync -avz /home/code /mnt/disk/backup/code --exclude "*.txt" //不对.txt文件进行备份 (或利用 --exclude-from FILEPATH 排除文件夹)
8.5 在更新rsync备份时,删除源端不存在的文件
rsync -avz SOURCE DESTINATION --delete //加上--delete选项后,如果DESTINATION中存在,SOURCE不存在,那么会被删除。
1.1归档
tar可以将多个文件和文件夹保存为单个文件,同时还能保留所有的文件属性,如所有者,权限等。
eg: tar -cf output.tar client.c md5.txt //对文件client.c 和md5.txt 归档为output.tar文件 (-c代表创建文件;-f代表制定文件,而且-f应该是选项中的最后一个。)
eg: tar -tf output.tar //列出归档文件中包含的文件
eg: tar -tvf output.tar //加上参数-v显示更详细的信息 (-v代表冗长模式)
eg: tar -rvf output.tar new_file //向归档文件中添加新的文件new_file (-r代表追加新文件到已存在的归档文档中)
eg: tar -xf output.tar -C /home/mapgoo //将归档文件中的文件提取到/home/mapgoo目录中 (-x代表提取(exact)。-C代表提取到的目录,没有指定代表当前目录.)
eg: tar -xvf output.tar client.c //只提取文件client.c
eg: tar -Af output.tar output1.tar //拼接两个归档文件,将output1.tar中的文件也打包进output.tar
eg: tar -uf output.tar client.c //仅当client.c的时间戳比归档文件中的新时才追加进去
eg:tar -f output1.tar --delete md5.txt 从归档文件中删除md5.txt文件
eg: tar -cf arch.tar * --exclude "*.txt" //排除所有的txt文件,进行归档。(用--exclude[PATTERN] 排除匹配通配符样式的文件)
eg: tar -cf arch.tar * -X list //排除list文件中列出的文件,进行归档。
eg: tar -cvf output.tar *sh --totals //打印出归档了多少字节(用--totals可以在归档完成之后打印出总归档字节数)
1.2压缩
eg: tar -acvf archive.tar.gz *sh //tar能够通过查看输出或输入文件的扩展名来进行压缩。为了使tar支持扩展名自动进行压缩,使用-a或--auto-compress选项)
2. cpio命令归档
cpio命令类似于tar的归档格式,它用来将多个文件和文件夹存储为单个文件,同时保留所有文件属性,如权限,文件所有权等,不过cpio并不像tar那么常用。它多用于RPM软件包(Fedora使用这种格式),linux内核的initramfs文件等。
eg: echo file1 file2 file3 | cpio -ov >archive.cpio //归档
eg: cpio -it < archive.cpio //列出cpio归档文件中的内容
eg: cpio -id < archive.cpio //从cpio归档中提取文件
-o制定输出; -v用来打印归档文件列表;-i用来指定输入;-t表示列出归档文件中的内容;-d用来提取。
3. gzip命令 压缩
3.1 压缩
gzip只能压缩单个文件或数据流,而无法对目录和多个文件进行归档。因此需要先创建tar归档文件,然后再用gzip进行压缩。
eg: gzip filename //压缩 ,生成filename.gz压缩文件
eg: gunzip filename.gz //解压缩
eg: gzip -l filename.gz //列出压缩文件的属性
3.2压缩归档
第一种方法: tar -acvf archive.tar.gz *sh
第二种方法:
第一步:归档 tar -cvf archive.tar *sh
第二步:压缩 gzip archive.tar
3.3压缩率
1级的压缩率最低,但是压缩速度最快; 9级的压缩率最高,但是压缩速度最慢
eg: gzip -5 test.img //5级应该能在压缩速度和压缩比之间获得一个不错的平衡
4.bzip2命令 压缩
bzip2命令是另一种常用的工具,其功能和语法同gzip非常的类似。唯一的不同在于bzip2的压缩效率比gzip更高,但花费的时间比gzip更长
eg: bzip2 read.c //压缩read.c文件,生成read.c.bz2文件
eg:bunzip2 read.c.bz2 //解压缩
4.2归档,压缩
eg: tar -acvf archive.tar.bz2 *sh //归档压缩 (对比 tar -acvf archive.tar.gz *sh )
eg: tar -xjvf archive.tar.gz2 //解压缩 (对比 tar -xavf archive.tar.gz ) (-j表明该归档文件是bzip2格式)
5.zip命令 归档和压缩
eg: zip archive.zip [SOURCE FILES / DIRS ] //zip格式进行归档压缩
eg: unzip archive.zip //提取zip文件中的内容 (zip提取完后并不会删除文件,这点与unlzma和gunzip不同)
eg: zip file.zip -u newfile //更新压缩文件中的内容。(-u选项)
eg: zip -d file.zip file.txt //从压缩文件中删除内容(-d选项)
eg: zip -l file.zip 、、列出压缩文件中的内容
6.pbzip2命令 更快速的归档工具
我们目前已经看到的多数压缩命令只能利用单个处理器核心,所以速度并不会特别快,而pbzip2能够借助多个处理器核心来降低压缩文件所需要的时间。
6.1压缩单个文件
pbzip2 myfile.tar //pbzip2会自动检测系统中处理器核心的数量,然后将myfile.tar压缩成myfile.tar.bz2 。
6.2要将多个文件或目录进行归档及压缩,可以使用tar配合pbzip2来实现
tar -cf myfile.tar.bz2 --use-compress-prog=pbzip2 dir_to_compress/
或者
tar -c dir_to_compress/ | pbzip2 -c >myfile.tar.bz2
6.3从pbzip2格式的文件中进行提取
pbzip2 -dc myfile.tar.bz2 | tar x //如果是tar.bz2文件,我们可以一次性完成解压缩和提取工作
pbzip2 -d myfile.tar.bz2 //如果是经过pbzip2压缩过的归档文件
6.4手动制定处理器数量
pbzip2 -p4 myfile.tar //使用4个处理器核心
7.创建压缩文件系统
squashfs是一种具有超高压缩率的只读文件系统。如果需要采用超高的文件压缩率,又希望在无需解压的情况下读取少量文件,那么squashfs就能够大显身手了,解压体积较大的压缩文件可得花上一阵功夫。但如果将文件以环回形式挂载,那么速度会变的飞快,因为只有出现访问请求时,对应的那部分压缩文件才会被解压缩。
7.1创建squashfs文件
mksquashfs SOURCES compressedfs.squashfs //SOURCES部分可以是通配符或文件,目录路径(eg: mksquashffs /etc test.squashfs )
7.2 利用环回形式挂载squashfs文件
mount -o loop compressedfs.squashfs /mnt/squash //将文件挂载在/mnt/squash目录
7.3补充:在创建squashfs文件时排除部分文件
eg: mksquashfs /etc test.squashfs -e /etc/passwd /etc/shadow
eg: mksquashfs /etc/ test.squashfs -ef excludelist //文件excludelist列出了要排除的文件
8.使用rsync备份
rsync可以对位于不同位置的文件和目录进行同步,它利用差异计算以及压缩技术来最小化数据传输量。相对于cp命令,rsync的优势在于使用了高效的差异算法。另外还支持网络数据传输。在进行复制的同时,rsync会比较源端和目的端的文件,只有当文件有更新时才进行复制。rsync也支持压缩加密等多种特性。
8.1将源目录复制到目的端
rsync -av source_path destination_path //(-a表示要进行归档; -v表示在stdout上打印细节信息或进度)
eg: rsync -av ./shell/ mapgoo@192.168.1.142:/home/mapgoo //远程复制
8.2压缩数据传输
rsync -avz source_path destination_path //-z选项指定在网络传输时压缩数据
8.3对比两条命令的区别
rsync -av /home/test /home/backups (test文件夹会复制过去)
rsync -av /home/test/ /home/backups (不会复制test文件夹,只会复制里面的内容)
8.4排除部分文件
eg: rsync -avz /home/code /mnt/disk/backup/code --exclude "*.txt" //不对.txt文件进行备份 (或利用 --exclude-from FILEPATH 排除文件夹)
8.5 在更新rsync备份时,删除源端不存在的文件
rsync -avz SOURCE DESTINATION --delete //加上--delete选项后,如果DESTINATION中存在,SOURCE不存在,那么会被删除。