文件管理

文件管理

by:fengciaimei

一、根目录层级结构介绍

文件系统遵循FHSfilesyststem hierarchy standard)规范,文中定义了各个目录作用。

 

 

 

 

 

boot目录

  此目录存放系统启动过程中的引导目录,其中grub引导程序及其配置文件,vmlinuz内核文件,initramfs类伪文件系统

bin目录

  在centos6及以前版本中存放了系统启动时用到的最基础命令。也是说有用户的PATH路径下必须重要路径之一。此目录不能单独分区。此目录下不能又子目录。

  在centos78中此目录已经变成了/usr/bin的软连接。也就是在后续系统列中弱化了binusr/bin相关分类概念。

sbin目录

  同bin目录一样,都是系统启动时用到的基础管理命令。此目录同样不能单独分区。

    在centos6及以前版本中sbin目录时独立目录

    centos78中时/usr/sbin目录的软连接。

dev目录

  linux系统中存放设备文件和特殊文件的目录,同样不能单独分区。此目录下设备文件分字符设备文件和块设备文件。

    字符设备文件,又称线性设备文件,以c为类型标识符,线性访问设备。

    块设备文件,又称随机设备文件,以b为类型标识符,随性访问设备。

etc目录

  主要用于存放系统程序配置文件的目录,此目录也是层级目录,但现在大多数程序会以程序名为文件夹名的形式在etc目录下存放配置文件。

root目录

  root用户的家目录,可有可无,一般不建议root用户登录。

home目录

  普通用户家目录,可有可无。

lib目录

  基础库文件存放路径。此目录存放/bin  /sbin中程序所用到库文件,同时此目录下的modules中存放了内核模块文件,此目录不可单独分区。在cenos7\8中此目录已经变成了/usr/lib目录的软链接。

lib64目录

  基于x86_64系统中必要的基础库文件存放路径。同样是/bin/sbin中此程序所用到的库文件存放路径,不可独立分区,在cenos7\8中此目录已经变成了/usr/lib64目录的软链接。

tmp目录

  程序临时文件保存路径。此目录权限特殊。

media目录

  可移动设备的挂载点,如:cdrom\floppy\U盘等

mnt目录

  其它文件系统挂载点。

usr目录

usr,现在已经不是user的缩写,而是Unix System Resource的简写,此目录的重要性仅次于根目录。不可独立分区。

bin 主要存放保证系统拥有完整功能而提供的应用程序

sbin 更丰富的管理类应用程序存放路径

lib 提供更加丰富的库文件

Include C程序头文件存放路径

share 帮助文件的存放路径

local 独立层级结构,里面又提供bin sbin etc lib,第三方应用程序存放路径。

src 源码存放路径

opt目录

  早期第三方应用程序存放路径。

var目录

  从名称上讲,主要存放可以变化的数据。日志、邮件、临时文件等等

cache 应用程序缓存的存放目录

lib 发生状态变化数据的存放目录

local 主要用于存放/usr/local下发生状态变化数据的应用程序存放目录

lock 锁文件的存放目录

log 日志文件的存放目录

opt 用于存放/opt下发生状态变化数据的应用程序存放目录

run 用于存放运行中进程产生的数据

spool 应用程序数据池

tmp 保存系统两次重启之间产生的临时数据

proc目录

  存放内核和进程相关信息的虚拟文件系统,大多数为内核参数。此目录中的数据存放于内存当中。

sys目录

  用于输出当前系统上硬件设备相关信息虚拟文件系统

selinux目录

  selinux相关的安全策略等信息的存储位置

 

 

应用程序各组成部分存放路径:

二进制程序:/bin   /sbin   /usr/bin   /usr/sbin   /usr/local/bin   /usr/localsbin   /opt

库文件:  /lib   /lib64   /usr/lib   /usr/lib64   /usr/local/lib  /usr/local/lib64

配置文件: /etc   /usr/local/etc

帮助文件: /usr/share   /usr/local/share

 

 

二、文件名命名规则

1,文件名长度不能超过255个字符

2不能使用/当文件名,也就是支持除了使用/以外的任意字符

3文件名严格区分大小写

4,  目录也是文件,在同一路径下,两个文件不能重名

5 . 开头的文件为隐藏文件

6,包括路径在内文件名称最长4095个字节

 

 

三、文件名通配

*          匹配零个或多个任意字符,但是不能匹配点开头的隐藏文件

?         匹配任意一个字符。

[]         匹配指定范围内的任意一个字符。

[a-e]         会匹配出 a A b B c C d D e,是按小大小大的形式匹配。

~           表示家目录

~+.       表示当前工作目录

~-          表示之前所在的目录

^          取反

[^]          去皮指定范围外的任意单个字符

 

 

  字符集:

[[:upper:]]     大写字母集

[[:lower:]]      小写字母集

[[:digit:]]        数字集

[[:alpha:]]     大小写字母集

[[:alnum:]]    字母和数字集

[[:blank:]]      水平空白字符集

[[:space:]]     水平或垂直空白字符集

[[:punct:]]      标点符号集

 

 

示例说明,演示[a-e]会匹配出大写字母

[root@CentOS7 data]# mkdir test

[root@CentOS7 data]# cd test

[root@CentOS7 test]# mkdir {a..z}

[root@CentOS7 test]# ls

a  A  b  B  c  C  d  D  e  E  f  F  g  G  h  H  i  I  j  J  k  K  l  L  m  M  n  N  o  O  p  P  q  Q  r  R  s  S  t  T  u  U  v  V  w  W  x  X  y  Y  z  Z

[root@CentOS7 test]# ls -d [a-e]

a  A  b  B  c  C  d  D  e

 

 

 

示例说明,解释星号不能匹配隐藏文件

[root@CentOS8 1]# touch 1 2 3 .4

[root@CentOS8 1]# ls

1  2  3

[root@CentOS8 1]# ls -a

.  ..  1  2  3  .4

[root@CentOS8 1]# rm -f *

[root@CentOS8 1]# ls -a

.  ..  .4

 

 

 

四、文件元数据和节点表结构

每个文件的属性信息,比如:文件的大小,时间,类型等,称为文件的元数据(meta data)

元数据是存放在nodeindex node)表中。node 表中有很多条记录组成,第一条记录对应的存放了一个文件的元数据信息

 

第一个node表记录对应的保存了以下信息:

inode number 节点号

文件类型

权限

UID

GID

链接数(指向这个文件名路径名称个数)

该文件的大小和不同的时间戳

指向磁盘上文件的数据块指针

有关文件的其他数据

 

 

 

 

 

 

 

 

  目录也是一种文件,目录文件内容中记录了该目录下各个文件的文件名和对应的inode号码。

 

 

 

 

 

 

五、软硬链接

软链接:

  相当于windows中的快捷方式,可以跨文件系统引用,可以引用目录。软连接文件实际只是记录了源文件相对或绝对路径,源文件遭到破坏后软连接文件也就不能使用了。

  软链接如果使用相对路径,是相对于原文件的路径,而非相对于当前目录。

    语法: ln -s filename [linkname]

 

 

硬链接:

  硬链接本质上就给一个文件起一个新的名称,实质是同一个文件。创建硬链接后文件的链接次数加1。

  不能对目录创建硬链接,不支持夸文件系统创建硬链接。

    语法:ln filename [linkname ]

 

 

软硬链接对比说明:

 

1.软链接本质上是一个新的文件、只是一个快捷方式,硬链接本质上是同一个文件,重新命名了一个新名称

2、 创建软链接不会增加链接数,创建硬链接、会增加文件链接数

3、软链接支持跨分区、跨设备、目录,硬链接不支持跨分区、跨设备、目录

4、创建软链接节点编号与原始文件节点编号不相同。创建硬链接,节点编号与原始文件节点编号相同

5、软链接文件与原始文件有主次之分,软链接文件依赖原始文件。硬链接文件与原始文件关系平等

 

posted @ 2020-03-29 18:46  讽刺暧昧  阅读(583)  评论(0编辑  收藏  举报