Linux基础-文件属性,文件类型,软硬链接

一, Linux文件属性

ls -l filename -- 看第一个字符

格式:
- : 普通文件(文本文件,二进制文件,压缩文件,图片文件等)
d : 目录文件(深蓝色)
b : 设备文件(块设备)存储设备硬盘 /dev/sda /dev/sda1
c : 设备文件(字符设备)打印机,终端 /dev/tty1 /dev/zero
s : 套接字文件,进程间通信
p : 管道文件
l : 链接文件(浅蓝色)

ls -lhi
-l 长格式
-h 人性化
-i inode,i节点
-d 查看目录自身信息

[root@bogon ~]# ls -ldh ssx-test/
drwxr-xr-x 2 root root 42 Mar 9 02:33 ssx-test/
[root@bogon ~]# ls -lh ssx-test/
total 4.0K
-rw-r--r-- 1 root root 0 Mar 9 02:32 1
-rw-r--r-- 1 root root 0 Mar 9 02:32 3.txt
-rw-r--r-- 1 root root 1.3K Mar 9 02:33 passwd
[root@bogon ~]# ls -ilh ssx-test/
total 4.0K
33574994 -rw-r--r-- 1 root root 0 Mar 9 02:32 1
33575028 -rw-r--r-- 1 root root 0 Mar 9 02:32 3.txt
33678691 -rw-r--r-- 1 root root 1.3K Mar 9 02:33 passwd
[root@bogon ~]#

inode
源自于文件系统
分区
平面设计图
格式化
施工
文件系统
windows
NTFS
FAT32(淘汰)
允许的单个文件大小不超过4G
Linux
ext4
xfs

inode包含文件的元信息,具体来说有以下内容:
1. 文件的字节数
2. 文件拥有者的User ID
3. 文件的Group ID
4. 文件的读,写,执行权限
5. 链接数,既有多少文件名指向这个inode
6. 文件数据block的位置

[root@bogon ssx-test]# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/centos-root 8.5M 71K 8.5M 1% /
devtmpfs 119K 387 119K 1% /dev
tmpfs 122K 1 122K 1% /dev/shm
tmpfs 122K 740 122K 1% /run
tmpfs 122K 16 122K 1% /sys/fs/cgroup
/dev/sda1 512K 326 512K 1% /boot
tmpfs 122K 1 122K 1% /run/user/0
[root@bogon ssx-test]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.7G 16G 10% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 132M 883M 14% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@bogon ssx-test]#

注意:
磁盘满了有两种可能:
a. 很多大文件,占满了空间(常见)
b. 小文件(空文件等)太多,每个文件都会有一个inode信息,磁盘上的inode节点数
量是有限的,inode节点过多也会占满磁盘空间

补充:
[root@bogon ~]# du -sh ssx-test/
4.0K ssx-test/
[root@bogon ~]# du -sh ssx-test/*
0 ssx-test/1
0 ssx-test/3.txt
4.0K ssx-test/passwd
[root@bogon ~]#

二,文件类型

注意:
Linux文件扩展名不代表任何含义,仅为了好识别
通过颜色或者后缀判断文件类型不一定准确

查看文件类型的命令 -- file
[root@bogon ssx-test]# ll
total 25628
-rw-r--r-- 1 root root 14029671 Sep 11 10:34 08_python_fullstack_s15day33_?叱????芙?.mp4
-rw-r--r-- 1 root root 0 Mar 9 02:32 1
-rw-r--r-- 1 root root 0 Mar 9 06:32 10.rmvb
-rw-r--r-- 1 root root 0 Mar 9 06:32 11.docx
-rw-r--r-- 1 root root 188550 Mar 4 10:21 ???图片_20190304102144.jpg
-rw-r--r-- 1 root root 0 Mar 9 06:30 2.mp3
-rw-r--r-- 1 root root 0 Mar 9 06:30 3.mp4
-rw-r--r-- 1 root root 0 Mar 9 02:32 3.txt
-rw-r--r-- 1 root root 0 Mar 9 06:30 5.jpg
-rw-r--r-- 1 root root 0 Mar 9 06:31 6.sh
-rw-r--r-- 1 root root 0 Mar 9 06:31 7.avi
-rw-r--r-- 1 root root 0 Mar 9 06:31 8.png
-rw-r--r-- 1 root root 0 Mar 9 06:32 9.zip
-rw-r--r-- 1 root root 1252 Mar 9 02:33 passwd
drwxr-xr-x 2 root root 6 Mar 9 06:41 test
drwxr-xr-x 2 root root 6 Mar 9 06:41 test1
drwxr-xr-x 2 root root 6 Mar 9 06:41 test2
-rw-r--r-- 1 root root 188550 Mar 4 10:21 test.jpg
-rw-r--r-- 1 root root 11818011 Mar 9 06:44 test.tgz
[root@bogon ssx-test]# file 08_python_fullstack_s15day33_线程锁总结.mp4
08_python_fullstack_s15day33_线程锁总结.mp4: ISO Media, MPEG v4 system, version 1
[root@bogon ssx-test]# file test.tgz
test.tgz: gzip compressed data, from Unix, last modified: Sat Mar 9 06:44:49 2019
[root@bogon ssx-test]# file test.jpg
test.jpg: JPEG image data, JFIF standard 1.01
[root@bogon ssx-test]# file 3.txt
3.txt: ASCII text
[root@bogon ssx-test]# file 6.sh
6.sh: empty
[root@bogon ssx-test]#

三,软硬链接

  1. 软连接
    Linux里的软链接文件类似于Windows系统中的'快捷方式',里边具体存放的是源文件的路径,并指向源文件实体,因此通过访问这个'快捷方式'可以迅速访问到源文件.软链接的文件类型是l.
    我们只需要执行命令'ln -s 源文件 软连接文件'完成软链接创建

注意:
软链接和源文件是不同类型的文件,所以inode也不同
文件软链接示例

[root@localhost ssx-test]# touch 2.txt
[root@localhost ssx-test]# ll
total 0
-rw-r--r-- 1 root root 0 Mar 11 06:04 2.txt
[root@localhost ssx-test]# ln -s 2.txt 2_tmp.txt
[root@localhost ssx-test]# ll
total 0
lrwxrwxrwx 1 root root 5 Mar 11 06:04 2_tmp.txt -> 2.txt
-rw-r--r-- 1 root root 0 Mar 11 06:04 2.txt
[root@localhost ssx-test]#

目录软链接示例

[root@localhost ssx-test]# mkdir test
[root@localhost ssx-test]# ll
total 0
drwxr-xr-x 2 root root 6 Mar 11 06:07 test
[root@localhost ssx-test]# ln -s test test_temp
[root@localhost ssx-test]# ll
total 0
drwxr-xr-x 2 root root 6 Mar 11 06:07 test
lrwxrwxrwx 1 root root 4 Mar 11 06:11 test_temp -> test
[root@localhost ssx-test]#

生产环境下软链接作用:
1. 软件升级
2. 企业代码发布
3. 不方便目录移动
注意:
1. 软链接要使用绝对路径
2. 软链接既可以对文件也可以对目录

  1. 硬链接
    Linux文件系统中,多个文件名执行同一个索引节点(inode)是正常允许的(文件的多个有效的入口),这种情况的文件称为硬链接.通过执行'ln 源文件 硬链接文件'给文件设置硬链接,来防止重要文件误删.
    注意:
    目录不能创建硬链接,硬链接文件可以使用rm命令删除

  2. 软硬链接区别
    Linux下软链接和硬链接的区别:

    1. ln命令创建硬链接,ln -s命令创建软链接
    2. 目录不能创建硬链接,并且硬链接不可以跨越分区系统
    3. 目录软链接特别常用,并且软链接支持跨越分区系统
    4. 硬链接文件与源文件的inode相同,软链接文件与源文件inode不同
    5. 删除软链接文件,对源文件以及硬链接文件无任何影响
    6. 删除文件的硬链接文件,对源文件及链接文件无任何影响
    7. 删除链接文件的源文件,对硬链接无影响,会导致软链接失效
    8. 删除源文件及其硬链接文件,整个文件会被真正的删除
原文地址:https://www.cnblogs.com/s-sx/p/11845810.html