linux查看软硬连接属性,Linux ll查看文件属性详解-软硬链接详解

Linux文件属性及类型

[[email protected] ~]# ll anaconda-ks.cfg

文件类型 权限 硬连接数 文件的大小 文件的创建,修改时间

- rw-------. 1 root root 1379 3月 12 17:43 anaconda-ks.cfg

[[email protected] ~]# 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 目录文件

cchar 字符设备文件

bblock 块设备文件(用来存储数据的设备)

ssocket,安全套接字文件

llink 软链接文件(快捷方式)

ppipe 管道文件

注意:通过颜色或者后缀判断文件类型不一定准确.

系统链接文件

一个文件分为两部分:

真实数据 block

元数据 inode

block:真实数据占用的空间,默认一个block 4k,使用下面命令查看

df -h

inode:元数据占用的空间,形容文件属性。

df -i# 查看inode使用情况

ls -i# 查看文件inode

模拟inode占满场景

[[email protected] 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

[[email protected] dev]# ll /opt/disk

-rw-r--r-- 1 root root 1048576 Mar 25 22:22 /opt/disk

[[email protected] 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) [[email protected] 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

[[email protected] dev]# mkdir /data1

[[email protected] dev]# mount -t ext4 -o loop /opt/disk /data1

[[email protected] 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

[[email protected] 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

[[email protected] dev]# cd /data1/

# 尝试创建1024个文件到1014的时候就创建不了了。

[[email protected] 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

# 磁盘空间未满

[[email protected] 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

[[email protected] 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

[[email protected] data1]#

软链接

创建方式:

ln -s 文件或目录 链接名

软链接相当于windows的快捷方式,软链接文件会将inode指向源文件的block

1.那么当我们对一个文件创建多个软链接时,其实就是多个inode指向同一个block。

[[email protected] opt]# ln -s /opt/a.txt a1_softl

[[email protected] opt]# ln -s /opt/a.txt a2_softl

[[email protected] opt]# ln -s /opt/a.txt a3_softl

[[email protected] 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

[[email protected] 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

[[email protected] opt]# cat a1_softl

aaabbbccc

[[email protected] opt]# cat a2_softl

aaabbbccc

[[email protected] opt]# cat a3_softl

aaabbbccc

[[email protected] opt]#

2.那么当我们删除软链接文件时,其实只是删除了一个inode的指向,并不会对源文件造成影响。

[[email protected] opt]# rm a1_softl

rm: remove symbolic link ‘a1_softl’? y

[[email protected] opt]# rm a2_softl

rm: remove symbolic link ‘a2_softl’? y

[[email protected] opt]# cat a.txt

aaabbbccc

[[email protected] opt]#

3.如果我们删除的是源文件,那么该文件的所有软链接文件都会失效。

[[email protected] opt]# ll

total 264

lrwxrwxrwx 1 root root 10 Mar 25 22:32 a3_softl -> /opt/a.txt

[[email protected] opt]# rm -rf a.txt

[[email protected] 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

[[email protected] opt]# touch a.txt

[[email protected] opt]# ln a.txt a_hardl

[[email protected] 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)删除源文件对硬连接没有影响,硬连接有备份的作用

[[email protected] opt]# echo 123tt >a_hardl

[[email protected] 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

[[email protected] opt]# cat a_hardl

123tt

[[email protected] opt]# cat a.txt

123tt

[[email protected] opt]# echo bbb >> a.txt

[[email protected] opt]# cat a.txt

123tt

bbb

[[email protected] opt]# cat a_hardl

123tt

bbb

[[email protected] opt]# rm -fr a.txt

[[email protected] opt]# cat a_hardl

123tt

bbb

3)目录无法创建硬链接

[[email protected] opt]# ln /opt/ /aaa

ln: ‘/opt/’: hard link not allowed for directory

硬链接和软链接的区别

# 1. 创建命令不同

硬链接: ln

软链接: ln -s

# 2. 目录无法创建硬链接,可以创建软链接,硬链接不能跨系统的分区,软链接可以

[[email protected] ~]# ln /opt/a_hardl /boot/

ln: failed to create hard link ‘/boot/a_hardl’ => ‘/opt/a_hardl’: Invalid cross-device link

# 3. 硬链接文件与源文件的inode号相同,软链接不同

# 4. 软链接如果删除源文件,所有软链接文件失效,硬链接如果删除源文件,其他硬链接文件均可以使用

原文:https://www.cnblogs.com/gshelldon/p/13269786.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值