ln,顾名思义,link,连接到意思,就是将2个文件连接到一起到意思。不过,linux下的文件连接,有2种,分别叫硬连接和软连接。 举个例子:现在有个文件 A,我又用ln命令创建了文件B和A硬连接,那么,当我删除文件A后,我访问B,其内容和A是一样到--这就是硬连接了!软连接呢?和windows里到快捷方式一样,不用说了吧?两种连接到功能一目了然,不过硬连接只能用在同一个文件分区里,软连接则没有限制。 在内部实现上,硬链接的文件是使用同一个inode结构,每一个硬链接使inode的使用计数加一,删除文件时,使用计数减一,当使用计数为零时,才真正删除文件. 而软链接的文件内,不是存的数据,而是存的一个文件的全路径名,使用此链接时,会根据此路径找到目标文件.这样就会出现这样的问题:目标文件已删除,而链接文件还存在, 则使用链接文件找目标文件时就会失败,这中情况称为 "悬空 ". mount命令是把一个文件系统,挂载到另一个文件系统上. 它与ln命令的区别: mount操作的对象是设备;Ln的操作对象是文件 mount操作的不一定是设备,也可以是回接文件. ---------------------------------------------------------------------------------------------------------------------------------------------- ln命令与mount有分别吗? 我分了个/date出来 位于/dev/sda11 在home下有ddate文件夹 那么我 ln -s /date /home/ddate 和 mount /dev/sda11 /home/ddate 两种方法都是直接对sda11的数据直接操作,有什么分别吗? 一个是挂载,一个是链接,你说有区别吗? 但这两种方法都是对sda11的数据操作呢,说说有什么实际的分别。那种操作更好? 你的/date是一个文件夹, 而你的/dev/sda11是一个实际硬盘。 ln -s /date /home/ddate实将.date链接到/home/ddate上,相当于你再/home/ddate创建了/ddate的快捷方式。事实上,你能在 ddate上操作sda11,是因为你已经将sda11挂载到了/ddate上。你可以试一下umount /ddate 再看你的/home/ddate是否还有sda11的内容。 mount /dev/sda11 /home/ddate 是将sda11直接挂载到了ddate上 ---------------------------------------------------------------------------------------------------------------------------------------------- mount取代ln去实现连结档(Symbolic Link) 我们在Linux或者是FreeBSD底下如何建立连结档(Symbolic Link),也就是在Windows底下的快捷方式啦,最重要搞清楚hard link跟soft link就可以了,简单来说,hard link只可以针对档案,不可以对目录,但是soft link就是可以对目录了,因为她就像Windows底下的快捷方式,那在Linux底下,大家常常在玩FTP,一定会碰到需要利用Link的方式,但是如果你利用ln的方式的话,连接ftp,会没办法回到上一层目录,就是有chroot的问题,那底下是我发现可以解决的方法。 在Linux底下,就是利用mount的指令: # #就是利用mount –bind # mount –bind olddir newdir 在FreeBSD底下,利用mount_nullfs指令 例如: #mv /usr/src /newadd //连src 目录移动到newadd下 #mkdir /usr/src # mount_nullfs /newadd/src /usr/src 注意:做了连接以下看有什么变化 #cd /usr/src #pwd /usr/src 很简单吧,大概是这样,FTP就不会出现不能回到上一层目录的问题了 |
|
来自: 恶之一眉 > 《Mount, ln》