Łuk*_*asz 49 command-line mount symbolic-link
我试图了解使用ln -s
和之间的区别mount --bind
。在基本情况下,我可以使用两者从其他地方访问一个目录。在什么情况下,这两者的行为会有所不同?
Tan*_*ett 22
好吧,ln -s
创建一个符号链接,而mount --bind
创建一个挂载。
符号链接是一种特殊类型的文件。如果你这样做ln -s /var/target /var/link
,那么/var/link
将是一个包含路径“ /var/target
”的文件。符号链接与普通文件的唯一区别在于,当程序试图对符号链接执行操作时,该操作通常是在目标上执行,而不是在文件上执行。所以现在如果你这样做ls /var/link
,ls
程序将尝试获取 的目录列表/var/link
,但实际上会获取 的目录列表/var/target
。
不过,符号链接仍然只是文件。它们可以重命名和删除以及所有爵士乐。请注意,/var/link
如果已经有一个名为/var/link
; 的文件,则无法创建符号链接(或普通文件,就此而言)。你需要先摆脱它。
挂载不是文件;这是内核保存在内存中的记录。如果这样做mount --bind /var/target /var/mount
,内核将记录/var/mount
现在是/var/target
. (我不知道细节;特别是,我不知道在子目录中安装某些东西是否/var/target
也会使其显示出来/var/mount
,或者为什么或为什么不显示。对此答案的编辑将不胜感激。)所以现在如果你这样做了ls /var/mount
,同样的事情会发生,就像你做了一样ls /var/target
,因为/var/mount
和/var/target
是同一个目录。
挂载不是文件。我不知道如果您尝试重命名或删除会发生什么/var/mount
。请注意,您不能在安装任何东西/var/mount
,除非已经有一个在一个目录/var/mount
。
归档时间: |
|
查看次数: |
30792 次 |
最近记录: |