linux四种基本的文件类型(Linux文件管理四)(1)

文件属性和类型

# 比如我ll看一个东西 [root@localhost ~]# ll 001 -rw-r--r--. 1 root root 23 Aug 25 09:24 001 -rw-r--r--. 文件类型及权限 1 文件硬链接次数 root 文件所属用户 root 所属组 23 文件大小 Aug 25 09:24 时间戳:文件最新修改的时间 001 文件或目录名 -rw-r--r--. 里面第一个字符的含义即代表文件类型: -:普通文件(文本,二进制,压缩,图片等) d: 目录 l:软连接文件 c:字符设备文件 比如:打印机,终端 比如/dev/tty1 b:块设备文件 比如:磁盘 u盘 光驱 比如/dev/sda1 /dev/sda2 s:安全套接字文件,socket 一部分客户端与服务端建立链接 就是一些socket p:管道文件 比如: [root@localhost ~]# ll /dev/tty crw-rw-rw-. 1 root tty 5, 0 Sep 4 08:57 /dev/tty ## 注意: linux文件扩展名不代表任何含义, 仅仅是为了运维人员便于识别

# 又如: # ls -h 以人类理解方式显示 -i显示Inode号(索引节点) [root@localhost ~]# ls -lhi total 8.0K 33574979 -rw-------. 1 root root 1.5K Aug 17 15:28 anaconda-ks.cfg 33575027 drwxr-xr-x. 2 root root 6 Aug 18 20:55 sky 33634575 -rw-r--r--. 1 root root 48 Aug 20 11:19 sky.txt 33575025 -rw-r--r--. 1 root root 0 Aug 18 20:04 test.txt

关于Block 和 Inode

[root@localhost ~]# ll 001 -rw-r--r--. 1 root root 23 Aug 25 09:24 001 [root@localhost ~]# ll 1.txt -rw-r--r--. 1 root root 156 Aug 25 20:08 1.txt # 文件的真实数据(文件内容)占用的磁盘空间:block 比如1.txt文本内容的156k # 文件的元数据(文件的属性)占用的磁盘空间:inode 比如 属主 属组 日期 大小 权限等 (文件名不算)(文件名在上级目录的block里) # 特点: 1.一个非空文件至少要占用一个Inode(有且只有一个)和一个block(可以有多个) 2.磁盘是由n多个block组成的 一个block是4k 磁盘读取数据是以block为单位读取的,每读一个block消耗一次磁盘IO # 磁盘要想使用,需先分区,格式化创建文件系统(如linux装机时是ext系统)时,就会生成大量的inode和block df -i df -h

软连接

# 软链接 相当于windows里的快捷方式,软链接文件会将inode指向源文件的block 如: [root@localhost ~]# ll /bin lrwxrwxrwx. 1 root root 7 Aug 17 15:23 /bin -> usr/bin ## 如何创建软链接 ln -s 源文件 新文件/名字 比如:我给我的1.txt创建软链接1txt: [root@localhost ~]# ln -s 1.txt 1txt ln -s命令即可创建 [root@localhost ~]# ll 1txt 看一眼 lrwxrwxrwx. 1 root root 5 Aug 27 11:34 1txt -> 1.txt [root@localhost ~]# cat 1txt 锄禾日当午 汗滴禾下土 谁知盘中餐 粒粒皆辛苦 床前明月光 疑是地上霜 举头望明月 低头思故乡 席梦思软床 wwwww WWWWW # 特性 当我们访问这个软链接文件时,其实就是在访问源文件的本身。 1.那么当我们对一个文件创建多个软链接时,其实就是多个inode指向同一个block。 2.那么当我们删除软链接文件时,其实只是删除了一个inode的指向,并不会对源文件造成影响。 (比如删除快捷方式,QQ照样用) 3.如果我们删除的是源文件,那么该文件的所有软链接文件都会失效。(比如你卸载QQ,快捷方式就废了) 4.软连接文件名字可以和源文件名字不一样 5.软连接和源文件的inode号不同 6.可以跨区创建 # 软链接的应用场景 1)软件升级 2)代码发布 3)不方便移动的目录 4)数据回滚 5)程序读取

硬链接

# 概念 如果两个或多个文件具有相同的 inode 值,即使它们 的文件 名不一样,位置不一样,它们 的 内容、所有者、权限其实都是一样 的 ,我们可以将其视为相同文件 。这类型 的文件 其实就是所谓 的 「硬链接」。硬链接 具有相同的 inode 值,但 文件 名不一样 # 如何创建(把-s去掉) ln 路径/源文件 新路径/名字 # 相当于备份 # 特性 1、inode号相同(ll -i 可以看inode号) 2、不可以跨区创建 3、不受源文件影响 # 例如 [root@localhost ~]# ln 1.txt 牛人啊 [root@localhost ~]# ll -i total 4 33574987 -rw-r--r-- 3 root root 0 Oct 5 12:22 1 33574987 -rw-r--r-- 3 root root 0 Oct 5 12:22 1.txt 33574979 -rw-------. 1 root root 1447 Aug 17 15:28 anaconda-ks.cfg 33574987 -rw-r--r-- 3 root root 0 Oct 5 12:22 牛人啊 [root@localhost ~]# vim 牛人啊 我勒个去 [root@localhost ~]# cat 1 我勒个去 内容相同。可见是操作的同一个文件。

总结:

1)创建命令不同 软链接:ln -s 硬链接:ln 2)目录不能创建硬链接,并且硬链接不可以跨越系统的分区,软链接可以 3)硬链接文件与源文件inode相同,软链接文件与源文件inode不同 4)删除软链接文件,对源文件无影响,但是删除软链接源文件对软链接文件有影响 5)删除硬链接文件,对源文件也无影响,并且删除源文件,对硬链接文件也无影响

,