Linux ll查看文件属性详解-软硬链接详解
Linux文件属性及类型
[root@localhost ~]# ll anaconda-ks.cfg
文件类型 权限 硬连接数 文件的大小 文件的创建,修改时间
- rw-------. 1 root root 1379 3月 12 17:43 anaconda-ks.cfg
[root@localhost ~]# ll -d zls
文件类型 权限 硬连接数 所属用户 所属用户组 文件的大小 文件的创建修改时间
d rwxr-xr-x. 2 root root 6 3月 12 18:00
文件名
zls
-:普通文件
d:目录文件
rw- --- --- :权限
rwx r-x r-x :权限
r:读 read
w:写 write
x:执行权限 execute
Linux系统文件的类型
ll 查看
file # 查看文件类型
- 普通文件
d directory 目录文件
c char 字符设备文件
b block 块设备文件(用来存储数据的设备)
s socket,安全套接字文件
l link 软链接文件(快捷方式)
p pipe 管道文件
注意:通过颜色或者后缀判断文件类型不一定准确.
系统链接文件
一个文件分为两部分:
- 真实数据 block
- 元数据 inode
block:真实数据占用的空间,默认一个block 4k,使用下面命令查看
df -h
inode:元数据占用的空间,形容文件属性。
df -i # 查看inode使用情况
ls -i # 查看文件inode
模拟inode占满场景
[root@oldboy dev]# dd if=/dev/zero of=/opt/disk bs=1K count=1024
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0.00210524 s, 498 MB/s
[root@oldboy dev]# ll /opt/disk
-rw-r--r-- 1 root root 1048576 Mar 25 22:22 /opt/disk
[root@oldboy dev]# mkfs.ext4 -i 1024 /opt/disk
mke2fs 1.42.9 (28-Dec-2013)
/opt/disk is not a block special device.
Proceed anyway? (y,n) [root@oldboy dev]# mkfs.ext4 -i 1024 /opt/disk
mke2fs 1.42.9 (28-Dec-2013)
/opt/disk is not a block special device.
Proceed anyway? (y,n) y
Filesystem too small for a journal
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
1024 inodes, 1024 blocks
51 blocks (4.98%) reserved for the super user
First data block=1
Maximum filesystem blocks=1048576
1 block group
8192 blocks per group, 8192 fragments per group
1024 inodes per group
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
[root@oldboy dev]# mkdir /data1
[root@oldboy dev]# mount -t ext4 -o loop /opt/disk /data1
[root@oldboy dev]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 28G 1.5G 27G 6% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/loop0 891K 21K 799K 3% /data1
[root@oldboy dev]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 14423552 31519 14392033 1% /
devtmpfs 121779 379 121400 1% /dev
tmpfs 124487 1 124486 1% /dev/shm
tmpfs 124487 704 123783 1% /run
tmpfs 124487 16 124471 1% /sys/fs/cgroup
/dev/sda1 256000 326 255674 1% /boot
tmpfs 124487 1 124486 1% /run/user/0
/dev/sr0 0 0 0 - /mnt
/dev/loop0 1024 11 1013 2% /data1
[root@oldboy dev]# cd /data1/
# 尝试创建1024个文件到1014的时候就创建不了了。
[root@oldboy data1]# touch file{1..1024}
touch: cannot touch ‘file1014’: No space left on device
touch: cannot touch ‘file1015’: No space left on device
touch: cannot touch ‘file1016’: No space left on device
touch: cannot touch ‘file1017’: No space left on device
touch: cannot touch ‘file1018’: No space left on device
touch: cannot touch ‘file1019’: No space left on device
touch: cannot touch ‘file1020’: No space left on device
touch: cannot touch ‘file1021’: No space left on device
touch: cannot touch ‘file1022’: No space left on device
touch: cannot touch ‘file1023’: No space left on device
touch: cannot touch ‘file1024’: No space left on device
# 磁盘空间未满
[root@oldboy data1]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 28G 1.5G 27G 6% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/loop0 891K 46K 774K 6% /data1
# inode已经是%100
[root@oldboy data1]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 14423552 31519 14392033 1% /
devtmpfs 121779 379 121400 1% /dev
tmpfs 124487 1 124486 1% /dev/shm
tmpfs 124487 704 123783 1% /run
tmpfs 124487 16 124471 1% /sys/fs/cgroup
/dev/sda1 256000 326 255674 1% /boot
tmpfs 124487 1 124486 1% /run/user/0
/dev/sr0 0 0 0 - /mnt
/dev/loop0 1024 1024 0 100% /data1
[root@oldboy data1]#
软链接
创建方式:
ln -s 文件或目录 链接名
软链接相当于windows的快捷方式,软链接文件会将inode指向源文件的block
1.那么当我们对一个文件创建多个软链接时,其实就是多个inode指向同一个block。
[root@oldboy opt]# ln -s /opt/a.txt a1_softl
[root@oldboy opt]# ln -s /opt/a.txt a2_softl
[root@oldboy opt]# ln -s /opt/a.txt a3_softl
[root@oldboy opt]# ll a*_so*
lrwxrwxrwx 1 root root 10 Mar 25 22:32 a1_softl -> /opt/a.txt
lrwxrwxrwx 1 root root 10 Mar 25 22:32 a2_softl -> /opt/a.txt
lrwxrwxrwx 1 root root 10 Mar 25 22:32 a3_softl -> /opt/a.txt
[root@oldboy opt]# ll -i a1_softl a2_softl a3_softl a.txt
16782001 lrwxrwxrwx 1 root root 10 Mar 25 22:32 a1_softl -> /opt/a.txt
16782002 lrwxrwxrwx 1 root root 10 Mar 25 22:32 a2_softl -> /opt/a.txt
16782003 lrwxrwxrwx 1 root root 10 Mar 25 22:32 a3_softl -> /opt/a.txt
17174724 -rw-r--r-- 1 root root 13 Mar 23 16:51 a.txt
[root@oldboy opt]# cat a1_softl
aaabbbccc
[root@oldboy opt]# cat a2_softl
aaabbbccc
[root@oldboy opt]# cat a3_softl
aaabbbccc
[root@oldboy opt]#
2.那么当我们删除软链接文件时,其实只是删除了一个inode的指向,并不会对源文件造成影响。
[root@oldboy opt]# rm a1_softl
rm: remove symbolic link ‘a1_softl’? y
[root@oldboy opt]# rm a2_softl
rm: remove symbolic link ‘a2_softl’? y
[root@oldboy opt]# cat a.txt
aaabbbccc
[root@oldboy opt]#
3.如果我们删除的是源文件,那么该文件的所有软链接文件都会失效。
[root@oldboy opt]# ll
total 264
lrwxrwxrwx 1 root root 10 Mar 25 22:32 a3_softl -> /opt/a.txt
[root@oldboy opt]# rm -rf a.txt
[root@oldboy opt]# ll a3*
lrwxrwxrwx 1 root root 10 Mar 25 22:32 a3_softl -> /opt/a.txt # 变红
软链接的应用场景
1)软件升级
2)代码发布
3)不方便移动的目录
4)数据回滚
5)程序读取
硬链接
1)硬连接文件和元数据文件inode号相同并指向统一block
[root@oldboy opt]# touch a.txt
[root@oldboy opt]# ln a.txt a_hardl
[root@oldboy opt]# ll -i
total 0
16782001 -rw-r--r-- 2 root root 0 Mar 25 22:47 a_hardl
16782001 -rw-r--r-- 2 root root 0 Mar 25 22:47 a.txt
2)删除源文件对硬连接没有影响,硬连接有备份的作用
[root@oldboy opt]# echo 123tt >a_hardl
[root@oldboy opt]# ll
total 8
-rw-r--r-- 2 root root 6 Mar 25 22:49 a_hardl
-rw-r--r-- 2 root root 6 Mar 25 22:49 a.txt
[root@oldboy opt]# cat a_hardl
123tt
[root@oldboy opt]# cat a.txt
123tt
[root@oldboy opt]# echo bbb >> a.txt
[root@oldboy opt]# cat a.txt
123tt
bbb
[root@oldboy opt]# cat a_hardl
123tt
bbb
[root@oldboy opt]# rm -fr a.txt
[root@oldboy opt]# cat a_hardl
123tt
bbb
3)目录无法创建硬链接
[root@oldboy opt]# ln /opt/ /aaa
ln: ‘/opt/’: hard link not allowed for directory
硬链接和软链接的区别
# 1. 创建命令不同
硬链接: ln
软链接: ln -s
# 2. 目录无法创建硬链接,可以创建软链接,硬链接不能跨系统的分区,软链接可以
[root@oldboy ~]# ln /opt/a_hardl /boot/
ln: failed to create hard link ‘/boot/a_hardl’ => ‘/opt/a_hardl’: Invalid cross-device link
# 3. 硬链接文件与源文件的inode号相同,软链接不同
# 4. 软链接如果删除源文件,所有软链接文件失效,硬链接如果删除源文件,其他硬链接文件均可以使用
Linux ll查看文件属性详解-软硬链接详解的更多相关文章
- Linux 软硬链接详解
软链接 软链接: 类似于windows的快捷方式,—>文本文件,但是包含了真实文件的地址 源文件删除,则软连接也删除 软链接可以放在任何文 ...
- Linux实时查看日志的四种命令详解
转至:https://blog.csdn.net/qq_33223299/article/details/93773989 如何在Linux中实时查看日志文件的内容?那么有很多实用程序可以帮助用户在文 ...
- Linux下查看文件属性
1.ls ls -a 查看所有文件,就是包含隐藏文件 ls -l 查看详细的属性,包括文件类型(d表示目录,-表示普通文件,l表示链接文件),文件的权限(所有者权限,所属组权限,其他人权限),所有者, ...
- Linux文件系统属性和权限概念详解(包含inode、block、文件权限、文件软硬链接等)
Linux中的文件属性 ls -lih 包括:索引节点(inode),文件类型,权限属性,硬链接数,所归属的用户和用户组,文件大小,最近修改时间,文件名等等 索引节点:相当于身份证号,系统唯一,系统读 ...
- Linux 链接详解----静态链接实例分析
由Linux链接详解(1)中我们简单的分析了静态库的引用解析和重定位的内容, 下面我们结合实例来看一下静态链接重定位过程. /* * a.c */ ; void add(int c); int mai ...
- linux 软/硬链接详解
SYNOPSIS ln [OPTION]... [-T] TARGET LINK_NAME (1st form) ln [OPTION]... TARGET (2nd form) ln [OPTION ...
- linux文件属性软硬链接知识
链接的概念 在linux系统中,链接可分为两种:一种为硬链接,另一种为软链接或符号链接.在默认不带参数的情况下,执行ln命令创建的链接是硬链接. 如果使用ln -s创建链接则为软链接,前面文件类型为 ...
- linux ln链接详解
1.序 Linux具有为一个文件起多个名字的功能,称为链接.被链接的文件可以存放在相同的目录下,但是必须有不同的文件名,而不用在硬盘上为同样的数据重复备份.另外,被链接的文件也可以有相同的文件名,但是 ...
- Linux中的软硬链接
说到Linux中的软硬链接,就必须谈一下Linux的文件系统的组成的重要部分iNode和block. 首先是iNode,先用一张图了解一下iNode在Linux文件系统中的地位: Linux中的文件的 ...
随机推荐
- 201871030103-陈荟茹 实验二 个人项目―《D{0-1}KP问题》项目报告
项目 内容 课程班级博客链接 班级博客链接 这个作业要求链接 作业要求链接 我的课程学习目标 1.理解掌握软件设计的过程中的各个环节2.掌握github的使用,将自己的项目上传至githu中 这个作业 ...
- 构建之法与CI/CD
项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任健) 这个作业的要求在哪里 个人阅读作业2 我在这个课程的目标是 认识软工,拥抱软工,提升相关能力以便日后与其朝夕相伴 这个作业在哪个具 ...
- get_started_3dsctf_2016-Pwn
get_started_3dsctf_2016-Pwn 这个题确实有点坑,在本地能打,在远程就不能打了,于是我就换了另一种方法来做. 确这个题是没有动态链接库,且PIE是关的,所以程序的大部分地址已经 ...
- Java面向对象7大设计原则
目录 单一职责原则 SRP 开闭原则 OCP 里氏替换原则 LSP 依赖倒置原则 DIP 接口隔离原则 ISP 组合复用原则 CRP 迪米特法则 LOD 单一职责原则 SRP 一个类只有一个引起修改变 ...
- Windows驱动派遣函数的学习
//派遣处理例程的介绍: //IPR简介: //IRP全称(I/O Request Package),即输入输出请求包.他是windows驱动的重要概念,用户模式下所有对驱动程序的I/O请求,全部由操 ...
- CentOS8 安装 MySQL8.0(yum)
1.Mysql 官网下载 RPM 包wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm2.检查是否已安装 ...
- Linux文件共享服务之Samba
目录 Samba Samba的配置 Samba Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ...
- Python中的BeautifulSoup模块
目录 BeautifulSoup Tag NavigableString BeautifulSoup Comment 遍历文档树 直接子节点 所有子孙节点 节点内容 搜索标签 CSS选择器 Bea ...
- PhpStorm 配置本地文件自动上传至服务器
目的:本地文件夹下的文件实时同步至指定服务器的文件夹,减少代码移植的成本和风险 添加一个SFTP连接 Tools - Deployment - Browse Remote Host 配置连接参数 Co ...
- js--吐血总结最近遇到的变态表单校验---element+原生+jq+easyUI(前端职业生涯见过的最烦的校验)
最近写了无数各种形式的表单,记录下奇奇怪怪的校验规则~ 一:首先是element自带的rules校验规则: element作为常用框架,自带rules属性简单易懂,官方文档一目了然,不再赘述,应付常用 ...