学习日志---linux块组深入,链接,压缩和打包

块组的意义

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

时间: 2024-10-28 05:48:51

学习日志---linux块组深入,链接,压缩和打包的相关文章

Linux文件与文件系统的压缩与打包

Linux文件与文件系统的压缩与打包 进来在学习Linux了,不过Linux的命令太多了,怕记不住所以使用博客记录的方式来写下自己的学习过程,以后忘记了还可以翻阅自己写下的博客来查查: Linux系统常见的压缩命令 Compress gzip,gcat bzip2,bzcat 打包命令:tar Linux系统常见的压缩命令 Linux的环境下,压缩文件大多扩展名是*.tar, *.tar,*.gz, *.tgz, *.gz, *.Z, *.bz2,下面我们列出常见的压缩文件扩展名: *.Z---

攻城狮在路上(叁)Linux(二十七)--- 压缩与打包之常见的压缩命令

前面讲到,linux中的后缀名没有特殊的意义,一般是作为不同文件类型的标识而已.下面是与打包.压缩相关的后缀名介绍: *.z:compress程序压缩文件 *.gz:gzip程序压缩文件 *.bz2:bzip2压缩文件 *.tar:tar打包,未压缩 *.tar.gz:tar打包,经过gzip压缩 *.tar.bz2:tar打包,经过bzip2压缩 一般经过打包或者压缩处理的文件通过后缀名来进行区别. 一.compress:该命令比较古老,centos默认未安装,可以使用gzip代替. 二.gz

学习日志---linux磁盘格式化

Linux: ext2,3,4这几个文件系统大多数linux都支持 对磁盘进行分区后,通过kpartx和partx指令让内核识别磁盘分区,接下来进行磁盘区的格式化,也就是创建文件系统: 格式化操作其中之一就是对分区创建元数据区和数据区,元数据区存的是inode,每个inode就是一个条目,对应一个文件,inode中还存着文件在数据区对应的块的编号,数据区很多的block,每个block是512个字节,使用时以2的n次方作为单位来使用,每个分区统一以几个block做为一个最小单元来存储数据. 文件

学习日志---Linux打卡6

回顾: 文件管理:ls, cat, tac, tail, head, more, less, cp, mv, rm, touch, stat, file, nano 用户管理:useradd, usermod, userdel, passwd, groupadd, groupmod, groupdel, id, su, chage, chfn, chsh, newgrp, gpasswd 用户类型: 管理员:0 一般用户:1-65535 系统用户:1-499, 这些用户的作用是系统刚启动是用来启

学习日志---linuxの 程序包管理综述

Linux的程序包管理: 应用程序: GPL:源码, POSIX: Portable Operatin System API: 兼容,意味开发库兼容,因此,源代码可跨平台 ABI:兼容,编译后的程序可以跨平台: 不同的平台可执行的二进制程序格式不同,因此编译后的相同程序在不同平台不一定都能运行 库:可执行程序,本身不能作为程序执行入口,但可以被调用 编译好的二进制格式 程序:预编译.编译.汇编.链接 静态: 动态链接:dll(windows), 在linux下,so(shared object)

学习日志---linux打卡2

这个是计算机组成: 在系统启动时,除了启动系统空间守护进程以外,在用户空间会启动一个init进程,这是用户空间进程的祖宗进程,由该进程可以启动shell进程(外壳进程),这样就可以由外壳去启动其他的与用户交互的用户进程. 学习记录: Unix: Linux: Unix-like, 类Unix系统 Linux: 内核,linux就是指的核心 GNU自由软件组织:GPL, gcc, emacs, vi, GNU/Linux: 结合,使用内核+其他的应用程序 Linux: www.kernel.org

学习日志---Linux打开5

文件系统: stat命令,文本编辑器:nano touch:change file timestamps 这三个时间戳 access time, atime modify time, mtime change time, ctime 直接使用touch创建的是普通文件 -c: 不创建空文件 -a: 仅修改访问时间 -m: 仅修改修改时间 -t STAMP: [CC]YYMMDDhhmm.ss 修改时间戳使用-t stat命令: stat FILE... 查看文件信息,一切皆文件,因此都可以访问

学习日志---linuxの RPM软件包管理器

rpm包的使用: rpm包命名格式: 源程序:name-version.tar.{gz|bz2|xz}  打包在一起的源码 version: major.minor.release rpm包:name-version-release.arch.rpm  这是打包好的二进制程序了 release:通常包含rpm的制作发行号,还包含适用的OS arch:这个是适用于哪种硬件架构,还有位数 例子:bash-4.3.2-2.el6.x86_64.rpm OS平台: el6: redhat enterpr

学习日志---linuxの yum的解析与使用

rpm软件程序包存在的问题:依赖关系 依赖关系解决方法: 程序包管理器的前端工具:yum (Yellowdog Update Modifier) yum是rpm的补充,为了提升用户体验的工具. yum的核心功能:自动解决依赖关系:X --> Y --> Z 文件服务器(共享rpm包):通过yum所支持的文件共享机制将各rpm包通过文件服务共享 该服务器是一个repository: yum仓库 组成部分: 1.各rpm包; 2.依赖关系.程序包安装后所能够生成文件列表等元数据文件; ftp, h