ln 创建连接和mount -bind用法

创建连接时, 对于源目标有三种方式,会有什么区别

  1. 不指定路径,如
ln -s python3 /usr/bin/python

ls -l /usr/bin/python
/usr/bin/pyton --> python3
  1. 指定绝对路径
ln -s /usr/bin/python3 /usr/bin/python

ls -l /usr/bin/python
/usr/bin/pyton --> python3
  1. 指定相对路径
# 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的特性。 完美解决软硬链接的缺点。

原文地址:https://www.cnblogs.com/hustcpp/p/13048501.html