ln是linux中又一个非常重要命令,它的功能是为某一个文件或目录在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。(类似Windows的快捷方式)
命令格式
ln -s 源文件或目录 目标文件或目录
一、目录软连接测试
ln -s /root/service-broker-updb-release/src /root/testsrc
说明:
如果testsrc是原本不存在的文件夹,执行上面的命令后,会在/root下创建名称为testsrc的软连接。
如果testsrc原本就存在,执行上面的命令后,会在/root/testsrc下创建名称为src的软连接。
软连接创建成功后,
切换到 /root 路径
cd /root
查看文件列表
ll
可以看到软链接信息(->指向的是源目录)
lrwxrwxrwx 1 root root 37 Nov 6 15:20 testsrc -> /root/service-broker-updb-release/src/
进入到/root/testsrc路径下,执行所有操作,均等价于直接在src路径下的操作。
此时如果删除源目录
rm -rf src
然后切换到/root下,执行ll 查看文件列表,还是能看到testsrc软连接信息,但是执行 cd testsrc 时,会报错:-bash: cd: testsrc: No such file or directory
然后在/root/service-broker-updb-release/路径下重建src目录
mkdir src
回到/root下,再次执行cd testsrc,能正常进入。
说明:
1、删除源目录,软连接不会删除,当删除后重建源目录时,软链接仍然有效。
2、增删改软链接或源目录下的文件或文件夹时,软链接与源目录是实时同步的。
3、删除软链接,rm -rf /root/testsrc 即可
二、文件软链接测试
ln -s /root/service-broker-updb-release/src/file.txt /root
进入 /root 路径下,ll 查看文件列表可以看到新建的软连接。
lrwxrwxrwx 1 root root 46 Nov 6 16:30 file.txt -> /root/service-broker-updb-release/src/file.txt
说明:
如果不指定目标文件名称,则会在目标路径下建立与源文件同名的软连接。
ln -s /root/service-broker-updb-release/src/file.txt /root/file-bak.txt
进入 /root 路径下,ll查看文件列表可以看到新建的软连接。
lrwxrwxrwx 1 root root 46 Nov 6 16:32 file-bak.txt -> /root/service-broker-updb-release/src/file.txt
说明:
1、如果指定了目标文件名称,则软连接名称就是目标文件名称。
2、如果指定的目标文件名称已存在,则创建软连接会失败。
3、如果删除源文件,软连接连接关系还会存在,当重建源文件时,软链接仍正常有效。
此处重建源文件是指在/root/service-broker-updb-release/src/路径下新建file.txt
或
在/root/下新建file-bak.txt文件。
4、删除软链接,rm -rf 软连接名称 即可