Ł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 次 |
| 最近记录: |