目录
Linux软硬链接
软链接、硬链接
---------------------------------
====================
Linux软硬链接
ln = link make links between files
语法:
软链接
ln -s 源文件 链接名称
实例:
ln -s HelloWord.java hw.lnk //给HelloWord.java创建了一个快捷方式,名字为hw.lnk
cat hw.lnk //软链接可用
rm -rf HelloWorld.java
cat hw.lnk //软链接不可用
硬链接
ln -d 源文件 链接名称
实例:
ln -d HW.java hwa.lnk //给HW.java创建了一个硬链接,名字为hwa.lnk
rm -rf HW.java
cat hwa.lnk //硬链接正常使用
注:在 Linux 中,只有文件的 硬链接数 == 0
才会被删除。
参见:硬链接的好处,及与文件副本之间的区别
================================
【快速入门Linux】9_Linux命令—find、软链接、打包和压缩、软件安装
https://zhuanlan.zhihu.com/p/463255401
二、 软链接、硬链接
2.1 软链接
注意:
- 没有
-s
选项建立的是一个 硬链接文件- 两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接
- 源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能够正常使用
###演练目标
# 1. 将桌面目录下的 01.py 移动到 demo/b/c 目录下
python@ubuntu:~$ cd Desktop/
python@ubuntu:~/Desktop$ cat 01.py
python@ubuntu:~/Desktop$ mv 01.py demo/b/c
# 2. 在桌面目录下新建 01.py 的 软链接 FirstPython
# 分别使用 相对路径 和 绝对路径 建立 FirstPython 的软链接
#① 相对路径
python@ubuntu:~/Desktop$ ln -s demo/b/c/01.py FirstPython
python@ubuntu:~/Desktop$ ls -l
总用量 24
-rw-rw-r-- 1 python python 237 9月 13 09:40 123.txt
drwxrwxr-x 3 python python 4096 9月 12 09:56 a
-rw-rw-r-- 1 python python 6 9月 13 11:10 a.txt
drwxrwxr-x 3 python python 4096 10月 2 10:37 demo
-rw-rw-r-- 1 python python 440 9月 13 11:21 f
lrwxrwxrwx 1 python python 14 10月 2 10:44 FirstPython -> demo/b/c/01.py
drwxrwxr-x 2 zhangsan python 4096 9月 23 14:43 Python学习
# ②绝对路径
python@ubuntu:~/Desktop$ ln -s /home/python/Desktop/demo/b/c/01.py FirstPython2
python@ubuntu:~/Desktop$ ls -l
总用量 24
-rw-rw-r-- 1 python python 237 9月 13 09:40 123.txt
drwxrwxr-x 3 python python 4096 9月 12 09:56 a
-rw-rw-r-- 1 python python 6 9月 13 11:10 a.txt
drwxrwxr-x 3 python python 4096 10月 2 10:37 demo
-rw-rw-r-- 1 python python 440 9月 13 11:21 f
lrwxrwxrwx 1 python python 14 10月 2 10:44 FirstPython -> demo/b/c/01.py
lrwxrwxrwx 1 python python 35 10月 2 10:51 FirstPython2 -> /home/python/Desktop/demo/b/c/01.py
drwxrwxr-x 2 zhangsan python 4096 9月 23 14:43 Python学习
# 3. 将 FirstPython 移动到 demo 目录下,对比使用 相对路径 和 绝对路径 的区别
python@ubuntu:~/Desktop$ mv First* demo
python@ubuntu:~/Desktop$ tree
python@ubuntu:~/Desktop$ cd demo/
python@ubuntu:~/Desktop/demo$ cat FirstPython
cat: FirstPython: 没有那个文件或目录
python@ubuntu:~/Desktop/demo$ cat FirstPython2
1111
2.2 硬链接简介(知道)
- 在使用
ln
创建链接时,如果没有-s
选项,会创建一个 硬链接,而不是软链接
### 硬链接演练
# 1. 在 ~/Desktop/demo 目录下建立 ~/Desktop/demo/b/c/01.py 的硬链接 01_hard
python@ubuntu:~/Desktop/demo$ ln /home/python/Desktop/demo/b/c/01.py 01_hard
python@ubuntu:~/Desktop/demo$ ls -l
#2. 使用 ls -l 查看文件的硬链接数(硬链接——有多少种方式可以访问文件或者目录)
python@ubuntu:~/Desktop/demo$ ls -l
python@ubuntu:~/Desktop/demo$ cat 01_hard
#3. 删除 ~/Desktop/demo/b/c/01.py,并且使用 tree 来确认 demo 目录下的三个链接文件
python@ubuntu:~/Desktop/demo$ rm b/c/01.py
python@ubuntu:~/Desktop/demo$ tree
#说明:硬链接
python@ubuntu:~/Desktop/demo$ cat 01_hard
1111
# 绝对路径
python@ubuntu:~/Desktop/demo$ cat FirstPython2
cat: FirstPython2: 没有那个文件或目录
# 相对路径
python@ubuntu:~/Desktop/demo$ cat FirstPython
cat: FirstPython: 没有那个文件或目录
2.3 文件软硬链接的示意图
在 Linux 中, 文件名 和 文件的数据 是分开存储的
- 提示:
- 在 Linux 中,只有文件的
硬链接数 == 0
才会被删除 - 使用
ls -l
可以查看一个文件的硬链接的数量 - 在日常工作中,几乎不会建立文件的硬链接,知道即可 //对数据存储程序员来说,这句话有问题
- 在 Linux 中,只有文件的
硬链接的好处,及与文件副本之间的区别
对于数据存储服务器场景的应用,100个人都拥有 100GB的相同数据:
采用“文件副本”方式:则需要 10MGB的磁盘空间。
采用“硬链接”方式:则只需要 100GB +用来保存硬链接数的很少磁盘空间,即可。