「Linux」软链接和硬链接,site default-ssl not properly enabled, default-ssl.conf is a real file

软链接和硬链接

问题来源:在配置Apache的SSL功能时,在配置过程中,发现最后启动配置项的/etc/apache2/sites-enabled/default-ssl.conf时,报错:

site default-ssl not properly enabled, default-ssl.conf is a real file

当时看到这个信息,不可以是真实的文件,以及之前看过的配置文件的内容,这个部分用ls -lah输出之后,会指定l,也就是软链接。但是,软链接和硬链接好像很久之前看过,也不知道该怎么指定。

翻阅《Linux/UNIX系统编程手册》之后,整理一下信息。

  1. 针对驻留于文件系统上的每个文件,文件系统的i节点表会包含一个i节点(索引节点的简称),也就是i-node
  2. ls -li中的i代表输出的文件的i-node信息,在第一列表示。
  3. 文件i-node存储的信息列表不包含文件名,而是通过目录列表中的一个映射来定义文件名称,这种特性,导致系统可以在相同或不同的目录中创建多个名称,每个都指向相同的i-node节点,也就是硬链接。

硬链接

我们可以通过ln sth hard-file来为sth创建一个硬链接,如下我在Mac OS中测试的结果:

macdeMac:Desktop mac$ echo -n 'It is good to collect things, ' > abc
macdeMac:Desktop mac$ ls -li abc
36095670 -rw-r--r--  1 mac  staff  30 11 27 20:15 abc
macdeMac:Desktop mac$ ln abc xyz
macdeMac:Desktop mac$ echo ' but it is better to go on walks.' >> xyz
macdeMac:Desktop mac$ ls -li abc xyz
36095670 -rw-r--r--  2 mac  staff  64 11 27 20:16 abc
36095670 -rw-r--r--  2 mac  staff  64 11 27 20:16 xyz

其中第三列为对i-node的计数,当执行ln命令之后,可以发现计数为2

,也就是指向这个文件的有两个名字,相同的xyz也是2。

当删除一个文件时,另一个文件作为一个独立的个体仍然存在。

macdeMac:Desktop mac$ rm abc
macdeMac:Desktop mac$ ls -li xyz
36095670 -rw-r--r--  1 mac  staff  64 11 27 20:16 xyz

只有当i-node的计数为0时,才会释放文件的i-node记录和数据块。

硬链接具有如下的 限制:

  • 硬链接对文件的指代采用了i-node编号,而i-node编号的唯一性仅在一个文件系统之内才能得到保障,所以硬链接必须与其指代的文件驻留在同一文件系统中。
  • 不能为目录创建硬链接,避免出现混乱的连接环路。

软链接(符号链接)

这是一种特殊的文件类型,其数据是另一个文件的名称。由命令ln -s来创建,ls -F的输出结果会在符号链接的尾部标记@

符号链接可以用于链接不同文件系统中的一个文件,而对硬链接的那些制约就不会困扰到符号链接,可以为目录创建符号链接。

ln -s sth asth为asth创建一个指向sth的软链接,这是一个实际存在的文件,只是指向另一个文件。当查找时会通过这个软链接去查找,修改时,也会对两个文件同时造成修改。

不如硬链接的就是,它一旦更改目录就会导致软链接无法使用。

macdeMac:Desktop mac$ ln -s xyz io
macdeMac:Desktop mac$ ls -alh xyz io
lrwxr-xr-x  1 mac  staff     3B 11 27 20:30 io -> xyz
-rw-r--r--  1 mac  staff    64B 11 27 20:16 xyz
macdeMac:Desktop mac$ cat xyz
It is good to collect things,  but it is better to go on walks.
macdeMac:Desktop mac$ cat io
It is good to collect things,  but it is better to go on walks.
macdeMac:Desktop mac$ echo 'lll' >> io
macdeMac:Desktop mac$ cat xyz
It is good to collect things,  but it is better to go on walks.
lll
macdeMac:Desktop mac$ cat io
It is good to collect things,  but it is better to go on walks.
lll
macdeMac:Desktop mac$ echo 'ooo' >> xyz
macdeMac:Desktop mac$ cat xyz
It is good to collect things,  but it is better to go on walks.
lll
ooo
macdeMac:Desktop mac$ cat io
It is good to collect things,  but it is better to go on walks.
lll
ooo

岁月漫长,也值得等待

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值