块组的意义
inode是指明一个文件的数据存储block的位置的,但由于inode存放大小的原因,不可能一次指向很多的block,因此采用多层指向,一个inode指向一个block区,一个block区中有很多的block,然后其下的block又指向其他的区。
目录文件也需要inode和block,目录文件的额block存储的是一张文件映射表,指明该目录下的文件对应的inode。
内核带有根目录,内核知道根分区以及根目录的inode号,因此从这里开始找。
文件删除时,即rm指令,在磁盘来说只是把该文件对应的inode和block的位图信息改变了,置为0,指明未使用,因此在这些地方如果没有其他数据插入进行覆盖,则可以找回。
文件移动,如果在同一个文件系统中,即在一个分区中,文件的移动实际上是把原来的文件对应的inode放置到新位置的文件映射中即可。因此同一分区下的移动非常快。
磁盘块不能跨分区引用(inode的指向不能跨分区),可以跨同一区的不同组。因此不同区的文件移动比较慢,需要复制。
链接文件:都是提供同一文件的不同访问路径的
ln [-s] SRC LINKFILE
硬链接:
硬链接不能跨分区;
不能对目录创建硬链接;
硬链接会改变文件被链接的次数;
硬链接与原文件指向同一个inode
ls指令,是显示该目录下的文件,本质是访问该目录的block,查看文件映射表,ls -i可以查看目录下文件对应的inode
符号链接:
block里面存的是链接的文件路径,因此可以跨分区;
符号链接的inode里是字符串,本身不对应数据块;
有奶便是娘的特性;
符号链接可以跨分区;
符号链接文件跟原文件不同一个inode;
可以对目录创建符号链接;
符号链接不会改变原文件被链接的次数;
/lib/libmc.2.so
ls /lib/libmc.1.so
xyzabc 12
xyzabc xyzabc
压缩工具:
zip, unzip
可以对文件和目录压缩,可以对目录进行归档压缩。
需要指明压缩之后的文件名:
zip file.zip file
以下三个都不能对目录进行压缩,目录对应的文件是个映射表,存在对应的block中。
gzip, gunzip = gzip -d, zcat
后缀:.gz
-c: 将压缩结果送往标准输出,可以使用重定向将其保存为压缩文件,从而保留原文件;
[[email protected] ~]# gzip -c anaconda.program.log > anacoda.gz
[[email protected] ~]# ls
2015-10-07-12-40 anaconda.program.log
anacoda.gz install.log.syslog
anaconda-ks.cfg shell10.sh
gzip -d file 解压
gzip -9 file 压缩文件,9是指压缩比
压缩或者解压后会自动删除源文件
zcat 可以查看压缩文件的内容,但不解压
gunzip = gzip -d 这俩的作用一样
bzip2, bunzip2 = bzip2 -d, bzcat
后缀:.bz2
默认6级压缩比
-k 可以保留原文件
xz(目前比较吊的), unxz = xz -d, xzcat
后缀:.xz
-#: 指定压缩比,1-9
归档工具:是打包工具,将多个文件打包成一个
tar [options] -f file.tar File1 ... 一定要跟f,而且要放在最后
file.tar是指定归档后的文件名
后面可以跟文件或者目录
-c: 创建归档
[[email protected] ~]# tar -cf pam.d.tar shell4.sh pam.d(这个是目录,打包后会存有目录结构)
-x: 展开归档,还原归档
[[email protected] ~]# tar -xf pam.d.tar
-t: 不展开而直接查看被归档的文件
tar -tf pam.d.tar
会把普通文件和目录,按结构显示查看
-z: gzip 可以在tar时也使用压缩,这下面三个对应的压缩格式
-j: bzip2
-J: xz
打包并压缩:tar -Jcf pam.d.tar.xz pam.d
解包并解压:tar -Jxf pam.d.tar.xz
以下是三种打包压缩的选项:
-zcf
-zxf
-jcf
-jxf
-Jcf
-Jxf
由tar归档以后压缩的文件,在解压是可以不指明哪种解压格式
cpio 这个也是一个归档工具
命令总结:hdparm, ln, dd, df, du, gzip, gunzip, zcat, bzip2, bunzip2, bzcat, zip, unzip, xz, unxz, xzcat, tar