Linux命令-文件处理命令:ln
ln -s /etc/issue /tmp/issue.soft 为这个/etc/issue文件创建一个软连接,名称为/tmp/issue.soft(相当于windows里面给/etc/issue文件创建一个快捷方式,名称为/tmp/issue.soft) ln /etc/issue /tmp/issue.hard 为这个/etc/issue文件创建一个硬连接,名称为/tmp/issue.hard(相当于windows里面复制文件,但不同的是硬连接支持同步更新)
ls -l /etc/issue 查看源文件/etc/issue的长格式信息 ls -l /tmp/issue.soft 查看软连接文件issue.soft的长格式信息,就能看到软连接的信息
注意:在linux系统中所有的软连接权限显示的时候都是rwxrwxrwx,但是执行软连接的时候一定要看它对应的源文件是否有相应的操作权限。如,要看/etc/issue文件的权限。
ls -l /etc/issue 查看issue文件长格式信息
ls -l /tmp/issue.hard 查看issue.hard硬连接长格式信息
注意:两个文件详细信息的区别只有位置不同,其他全部相同,好比:cp -p 这个复制命令一样。但是和cp -p命令复制的文件有什么区别呢?那就是同步更新
echo "wangyunpeng" >> /etc/issue 将wangyunpeng字符串内容写入到etc目录中的issue文件末尾。
cat /etc/issue 查看源文件内容
cat /tmp/issue.hard 查看硬连接文件内容(它们之间是同步更新的)
cat /tmp/issue.soft 查看软连接文件内容
下面演示软连接和硬连接的区别:
cp -p /etc/issue /tmp/issue.bak 将etc目录下面的issue文件复制到tmp目录下面起名叫issue.bak rm -f /etc/issue 强制删除etc目录下面的issue文件 cat /etc/issue 查看etc目录下面的文件内容,答案是没有了 cat /tmp/issue.soft 查看tmp目录下面的软连接issue.soft文件内容,答案也是没有了 cat /tmp/issue.hard 查看tmp目录下面的硬连接issue.hard文件内容,答案是有内容的(硬连接的文件还会保存下来)
ls -l /tmp/issue.soft 查看软连接长格式信息,指向源文件那里会有闪烁的现象
接下来,将tmp中的issue文件创建它的硬连接、软连接,以及查看它们三个文件的标示信息
cd /tmp 切换tmp目录 ls 显示当前目录的内容 ln issue.bak issue.bak.hard 创建硬连接 ln -s issue.bak issue.bak.soft 创建软连接 ls -i issue.bak issue.bak.hard issue.bak.soft 查看三个文件的标识信息
所以这也是为什么硬连接可以同步更新,就是因为在linux内核中它们的标示号是相同的。
硬连接的好处就是:实时备份,删除一个文件,不会影响另外一个文件。缺点是:不同一个磁盘分区之间不能创建硬连接
ln /tmp/issue.bak /boot/issue.bak.hard tmp分区和boot分区是两个不同的磁盘分区
但是软连接是可以的
ln -s /tmp/issue.bak /boot/issue.bak.soft 创建在两个不同分区上的软连接是可以的
ls -l /boot/issue.bak.soft 查看软连接长格式
缺点二:硬连接不可以针对目录创建的
ln /tmp /home/tmp.hard 将tmp目录创建硬连接到home目录下面,并修改名称为tmp.hard 是不可以的
但是软连接是可以的
ln -s /tmp /home/temp.soft 将tmp目录创建软连接到home目录下面,并修改名称为temp.soft
ls -rl /home/temp.soft 查看软连接目录temp.soft的长格式信息
提示:删除软连接文件,不会删除源文件。