创建连接时, 对于源目标有三种方式,会有什么区别
- 不指定路径,如
ln -s python3 /usr/bin/python
ls -l /usr/bin/python
/usr/bin/pyton --> python3
- 指定绝对路径
ln -s /usr/bin/python3 /usr/bin/python
ls -l /usr/bin/python
/usr/bin/pyton --> python3
- 指定相对路径
# CWD = /root/
ln -s ../usr/bin/python3 /usr/bin/python
ls -l /usr/bin/python
lrwxrwxrwx 1 root root 18 Jun 5 10:57 /usr/bin/python -> ../usr/bin/python3
答案
第一种方式只有python3 恰好在/usr/bin 目录时,才可以正常运行
第二种方式ok
第三种方式永远出错
ln创建软连接,不会校验源目标是否存在
mount --bind用法
当需要git管理外部文件时, 可能有两种办法,软链接和硬链接。
当在用git的时候发现,git会忽视软连接,无法add符号文件, 而对于硬链接则不能跟踪到文件变动,那有什么办法将外部文件加入git呢, 办法是用mount
mount --bind olddir newdir
将newdir绑定到olddir,并将olddir原来的内容隐藏,在umount时olddir内容可以还原,这是linux的特性。 完美解决软硬链接的缺点。