Linux之文件元数据与链接

文件元数据与表结构

每个文件的属性信息,例如文件的大小,时间和类型的信息,这类的信息作为文件的元数据。这些元数据存放特定表内,这个表就是inode。node内有很多的记录组成,主要有以下几个信息:

  1. inode的节点号,这个节点的总数据量是在格式化磁盘就已经确定了。
  2. 文件的类型
  3. 文件的权限信息
  4. 文件的所有者ID信息
  5. 文件的所有组的ID信息
  6. 链接的数量,在存在硬链接时,这个文件会变化
  7. 指向实际存放数据的地址指针
  8. 关于文件的其他的数据。

Linux之文件元数据与链接

上图可以涵盖inode的基本信息,我们通过实验对文件进行操作来实现时间的更改
首先准备测试文件,将/etc/fstab复制到/tmp下进行操作
Linux之文件元数据与链接
查看当前的文件的状态信息
Linux之文件元数据与链接
对mtime进行修改,将mtime修改到2019年
Linux之文件元数据与链接
查看修改结果,可以实现。因为属性变化,ctime也会同时变化。
Linux之文件元数据与链接

链接

在很多时候,需要将多个访问路径映射到同一个文件

硬链接

硬链接的本质是同一个文件,当创建硬链接时会增加元数据的链接数量,当链接数为1时,再删除才会删除数据文件。硬链接不能跨分区,同时也不能对目录创建硬链接。
实例:
默认ln 命令创建的就是硬链接
Linux之文件元数据与链接
可以看到inode号和链接号都有变化
Linux之文件元数据与链接

软链接又名符号链接

软链接就是链接文件的一个符号,它并不会对原有文件有影响。可以对目录和跨分区。
实例:使用参数s来让ln创建符号链接
Linux之文件元数据与链接
可以看出符号链接文件fstab2的inode号与源文件不一样,确定这个文件是全新的文件
Linux之文件元数据与链接

常用的文件管理命令

pwd 显示当前工作目录

在很多时候,一个目录错误导致错误的执行命令,其结果可能是灾难的,确认当前的工作路径是非常重要的。
这里创建/etc的符号链接,
-L 可以显示当前的路径
-P 可以显示设备的实际位置
Linux之文件元数据与链接

绝对路径和相对路径

绝对路径
以正斜杠开头的路径,可以用于文件和目录
相对路径:
不以斜线开头的,相对目录是以当前工作目录作为基准,可以用文件和目录
基准名:basename 只取文件名
目录名:dirname 只取路径

Linux之文件元数据与链接

更改工作目录

cd (change directory)更改当前的工作目录
常用选项:
.. 切换到父目录
无参数 切换当前用户的家目录
- 切换到上一个工作目录
Linux之文件元数据与链接

列出目录文件内容

ls 参数 文件目录
-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有文件,则以下之文件亦皆依序列出
Linux之文件元数据与链接

cp 复制文件命令

在系统的使用中,需要频繁的复制文件备份,
cp 参数 源 目的
常用参数:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
Linux之文件元数据与链接

确定文件内容

file 文件名
常用参数
-b  列出辨识结果时,不显示文件名称。
-c  详细显示指令执行过程,便于排错或分析程序执行的情形。
-f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
-L  直接显示符号连接所指向的文件的类别。
-m<魔法数字文件>  指定魔法数字文件。
-v  显示版本信息。
-z  尝试去解读压缩文件的内容。
Linux之文件元数据与链接

移动和重命名

mv 参数 源 目的
-b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n: 不要覆盖任何已存在的文件或目录。
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
Linux之文件元数据与链接

显示目录

tree 参数 目标
常用参数:
-d 只显示目录
-L 显示层级
-P 通配符匹配的内容
Linux之文件元数据与链接

创建目录

mkdir 参数 目标
常用参数:
-p 当目录不存在时直接创建
-v 常看执行过程
-m 设定目录的指定权限
Linux之文件元数据与链接

删除空目录

rmdir 参数 目标
只有在目录为空时候才能使用
常用参数:
-p 递归
-v 查看执行过程信息
Linux之文件元数据与链接

vim小试锋芒

将vim的tab设定为4个字符位
将/etc/vimrc中添加全局配置
Linux之文件元数据与链接
设定含义是设定tab为4个字符长度。

vim命令替换练手

复制系统文件至tmp目录
Linux之文件元数据与链接

可以发现多行是空行
Linux之文件元数据与链接
使用命令行模式,搜索替换将空行删除,%搜索全局,^\s匹配开头空白字符空格和tab,+表示多个,替换为空, g代表全局替换
Linux之文件元数据与链接

总结

以上内容所讲只是沧海一粟,作为学习过程中的一点积累。

Linux之文件元数据与链接

上一篇:linux shell命令之运算bc


下一篇:09-Linux实用指令-运行级别和找回root密码