软链接(符号链接)和硬链接
大约 2 分钟
软链接(符号链接)和硬链接
硬链接
如果A文件和B文件的关系是硬链接的关系。当用户修改A文件的内容,B文件的内容也会被改变;反之,修改文件B,文件A内容也会改变。
特点:
- 可以在多个文件间进行,
ls -l
显示文件的硬链接数 - 做硬链接
- 做硬链接(Linux的文件系统:ext4、xfs等)
- 所有的硬链接、具备相同的iNode节点号
软链接
类似Windows的快捷方式,为一个源文件创建一个快捷方式
ls -l
文件类型为l
,文件大小是其链接文件的路径名称的字符数
ln命令
给file1创建硬链接
ln file1 file2
给file1创建软链接,file2为创建的软链接名
ln -s file1 file2
#硬链接
$touch file1
$ln file1 file2 #创建硬链接
$ls -l #查看硬链接数
total 0
-rw-rw-r-- 2 zw zw 0 2月 21 19:53 file1
-rw-rw-r-- 2 zw zw 0 2月 21 19:53 file2
$echo "hello world" > file1 #写入file1
$cat file2 #file2也被修改
hello world
$echo "1111" >> file2 #修改file2
$cat file1 #file1 也被修改
hello world
1111
#软连接
$ln -s file1 file3 #同一文件夹下建立软链接
$ll
total 20
drwxrwxr-x 3 zw zw 4096 2月 21 20:08 ./
drwxr-xr-x 18 zw zw 4096 2月 21 20:09 ../
-rw-rw-r-- 2 zw zw 17 2月 21 19:54 file1
-rw-rw-r-- 2 zw zw 17 2月 21 19:54 file2
lrwxrwxrwx 1 zw zw 5 2月 21 19:59 file3 -> file1
drwxrwxr-x 2 zw zw 4096 2月 21 20:08 test/
$ln -s ~/link/file1 ./test/file5 # 链接到其他文件夹
$ll ./test/
total 8
drwxrwxr-x 2 zw zw 4096 2月 21 20:30 ./
drwxrwxr-x 3 zw zw 4096 2月 21 20:08 ../
lrwxrwxrwx 1 zw zw 19 2月 21 20:28 file5 -> /home/zw/link/file1
$ln -s ~/link/test2 ./test/temp/1111 #对目录做软链接
$cd ~/link/test/temp/1111
$pwd
/home/zw/link/test/temp/1111
$pwd -P #显示文件的实际路径,而不是软链接的路径
/home/zw/link/test2
不管是链接的是文件还是目录,正确的删除方法:
rm -r ./dir
rm -r ./dir/