文件处理和归档
paste [option]... [file]...
-d:指定分隔符
paste -d'|' file1 file2
合并两个以上文件时,可以指定多个分隔符
paste -d':,' file1 file2 file3
-s :paste 命令可以顺序地合并文件。即它顺序地将每个文件中的所有行的内容合并为一行,由此每个文件的内容被合并为单一的一行。
-d'|' -s 合并时可以指定分隔符。
paste - - <file1 将文件的内容由一列转换为两列。
paste -d: - - <file1 转为两列并指定分隔符
paste - - - < file1 将一列转为3列
dd:备份和拷贝文件
dd命令有如下两个基本参数:
if=<inputfile> 指定输入文件的路径,默认为标准输入。
of=<outputfile> 指定输出文件的路径,默认为标准输出。
例:直接复制一个磁盘/dev/sda的数据到另一个磁盘/dev/sdb
dd if=/dev/sda of=/dev/sdb
例:复制一个dvd光盘的数据到一个iso文件
dd if=/dev/dvd of=dev.iso
例:擦除一个分区的数据
dd if=/dev/zero of=/dev/sda2
/dev/zero 是linux系统中的一个特殊文件。从文件/dev/zero读出的内容均为空字符。它的一个典型用途就是提供用于初始化数据存储器的字符流。
dd 另外两个比较重要的参数:
bs=<n> 指定输入和输出的块大小。默认单位为字节
count=<n> 从输入读取的块数量
例如:创建一个1MB大小的文件,并且块大小为1024bytes
dd if=/dev/zero of=/tmp/outfile bs=1024 count=1024
备份磁盘的主引导分区:
dd if=/dev/sda of=/home/dong/MBR.image bs=512 count=1
下面命令的组合可以用于设备的标准测试,并分析其在块大小1024字节时的顺序的读写性能:
dd if=/dev/zero bs=1024 count=1000000 of=/home/dong/1GB.file
dd if=/home/dong/1GB.file of=/dev/null bs=64k
/dev/null也是linux系统中的一个特殊文件。就像一个黑洞,它可以接受所有向它写入的数据,而从这个文件中读不出任何数据。所有想过滤掉的输出数据都可以重定向到这个文件。
3. gzip、bzip2:压缩和归档文件
-c:gizp命令会将压缩内容输出到标准输出,所有可以使用重定向将输出内容写入到指定的文件,从而保留原始文件。
-d:gzip命令将解压缩指定的文件。
-r:gzip命令将递归的压缩指定目录下的文件。
-#:压缩级别 1-9 1压缩速度最快,9压缩率最高
-d:解压文件
-f:覆盖已存在文件
压缩级别-1~-9 但-9是bzip2命令采用的默认级别。
4.gunzip、bunzip2:解压缩文件
gunzip image1.jpb.gz
gunzip -c image.jpb.gz>image.jpg
bunzip2命令与bizp2命令相应,用于解压缩由bzip2命令的压缩文件。其作用与bzip2命令的-d选项相同。
bunzip2 image1.jpg.bz2 解压缩一个文件。
bunzip2 -k image1.jpg.bz2
5.tar:打包和解包文件
tar命令是Linux系统中主要的归档工具。
tar命令的语法如下所示:
tar [option]... [file]...
使用-cvf选项,创建一个未经压缩的tar包。
tar -cvf don.tar /home/dong
-c:创建一个新的归档。
-v:冗长地列出被处理的文件
-z:使用gzip压缩
-j:使用bzip2压缩
tar -xvf 对一个归档文件解包
tar -xvf don.tar
tar -xvf don.tar --wildcards '*.jpg'
结合-z使用,可以对一个使用gzip压缩的tar包进行解包
结合-j使用,可以对一个使用bizp2压缩的tar包进行解包。
结合-z:可以在不解包的情况下列出使用gzip压缩的tar包文件中的内容
结合-j:可以在不解包的情况下列出使用bzip2压缩的tar包文件中的内容
-r不能与-j -z联合使用
-W:核实tar包的内容
tar -cWvf don.tar /home/don
也可以用于核实现存的tar包文件中的内容与文件系统中的内容是否存在差异。
-W不能核实压缩过的文件。
-d也可以比较tar包中的内容与文件系统中的内容的差异,但不具有核实的功能。
tar -dvf don.tar
或
tar -dvf dong.tar.gz