软链接与硬链接
软链接与硬链接
- 结论
- 测试
- 分析
- 1. 软链接和硬链接都可以创建不止一个
- 2.文件移动位置之后,只要没删除,硬链接依旧可用,但是软链接就用不了了
结论
软链接和硬链接都可以创建任意多个(≥1),但行为不同:
-
硬链接:多个硬链接指向同一文件数据(共享 inode),删除原文件不影响其他硬链接。
-
软链接:多个软链接可指向同一目标路径(各自独立),目标文件删除后,所有软链接失效。
测试
Test@TestGroup 17:49:29 ~/TestProject
$ mkdir TestLn-s
Test@TestGroup 17:49:36 ~/TestProject
$ cd TestLn-s/
Test@TestGroup 17:49:44 ~/TestProject/TestLn-s
$ mkdir ShContent
Test@TestGroup 17:49:59 ~/TestProject/TestLn-s
$ cd ShContent/
Test@TestGroup 17:50:02 ~/TestProject/TestLn-s/ShContent
$ touch test.sh
Test@TestGroup 17:50:15 ~/TestProject/TestLn-s/ShContent
$ vim test.sh 向test.sh中写入:
#!/bin/bash
echo "test1111"Test@TestGroup 17:50:40 ~/TestProject/TestLn-s/ShContent
$ chmod 777 test.sh
Test@TestGroup 17:50:49 ~/TestProject/TestLn-s/ShContent
$ ./test.sh
test1111
Test@TestGroup 17:50:52 ~/TestProject/TestLn-s/ShContent
$ cd ..
Test@TestGroup 17:50:55 ~/TestProject/TestLn-s
$ ls
ShContent
Test@TestGroup 17:50:56 ~/TestProject/TestLn-s
$ ln -s ./ShContent/test.sh softlink1.sh
Test@TestGroup 17:52:02 ~/TestProject/TestLn-s
$ ln -s ./ShContent/test.sh softlink2.sh
Test@TestGroup 17:52:06 ~/TestProject/TestLn-s
$ ./softlink1.sh
test1111
Test@TestGroup 17:52:12 ~/TestProject/TestLn-s
$ ./softlink2.sh
test1111
Test@TestGroup 17:52:14 ~/TestProject/TestLn-s
$ ln ./ShContent/test.sh hardlink1.sh
Test@TestGroup 17:52:38 ~/TestProject/TestLn-s
$ ln ./ShContent/test.sh hardlink2.sh
Test@TestGroup 17:52:41 ~/TestProject/TestLn-s
$ ./hardlink1.sh
test1111
Test@TestGroup 17:52:45 ~/TestProject/TestLn-s
$ ./hardlink2.sh
test1111
Test@TestGroup 17:55:05 ~/TestProject/TestLn-s
$ ls -li
总计 12
347413368 -rwxrwxrwx 3 Test Test 28 4月 28 17:50 hardlink1.sh
347413368 -rwxrwxrwx 3 Test Test 28 4月 28 17:50 hardlink2.sh
347413365 drwxrwxr-x 3 Test Test 4096 4月 28 17:55 ShContent
347413366 lrwxrwxrwx 1 Test Test 19 4月 28 17:52 softlink1.sh -> ./ShContent/test.sh
347413367 lrwxrwxrwx 1 Test Test 19 4月 28 17:52 softlink2.sh -> ./ShContent/test.sh
Test@TestGroup 17:52:49 ~/TestProject/TestLn-s
$ ls
hardlink1.sh hardlink2.sh ShContent softlink1.sh softlink2.sh
Test@TestGroup 17:52:53 ~/TestProject/TestLn-s
$ cd ShContent/
Test@TestGroup 17:53:00 ~/TestProject/TestLn-s/ShContent
$ ls
test.sh
Test@TestGroup 17:53:01 ~/TestProject/TestLn-s/ShContent
$ mkdir MvContent
Test@TestGroup 17:53:16 ~/TestProject/TestLn-s/ShContent
$ mv test.sh MvContent/
Test@TestGroup 17:53:24 ~/TestProject/TestLn-s/ShContent
$ ls
MvContent
Test@TestGroup 17:53:56 ~/TestProject/TestLn-s/ShContent
$ cd ..
Test@TestGroup 17:54:01 ~/TestProject/TestLn-s
$ ./hardlink1.sh
test1111
Test@TestGroup 17:54:06 ~/TestProject/TestLn-s
$ ./hardlink2.sh
test1111
Test@TestGroup 17:54:09 ~/TestProject/TestLn-s
$ ./softlink1.sh
bash: ./softlink1.sh: 没有那个文件或目录
Test@TestGroup 17:54:18 ~/TestProject/TestLn-s
$ ./softlink2.sh
bash: ./softlink2.sh: 没有那个文件或目录
Test@TestGroup 17:54:25 ~/TestProject/TestLn-s
$
分析
1. 软链接和硬链接都可以创建不止一个
如图所示:
2.文件移动位置之后,只要没删除,硬链接依旧可用,但是软链接就用不了了
如图所示: