一、建立软链接
用法:ln -s 源文件 目标文件。源:实际存放文件的位置
例:ln -s sourcelink/123.txt link-test1
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
注意:
ln的链接有软链接和硬链接两种
- 软链接 ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间;
- 硬链接 ln ** **,没有参数-s,它会在你选定的位置上生成一个和源文件大小相同的文件。
无论是软链接还是硬链接,文件都保持同步变化。
例:我的文件在 /tmp/cs 下面,我想在 /tmp/test/cs 这个路径下面也能访问到,那么应该这样来做;
ln -s /tmp/cs /tmp/test /tmp/test下面不用创建cs这个目录,会自动创建。
二、查看建立的软链接
ls -al | grep ^l
三、删除软链接
rm -rf file
四、软链接玩法
- 创建文件123.txt,创建链接文件link-test1去链接123.txt,inode节点编号不一样,表示不是指向同一内存地址。
2.修改文件123.txt的文件名,链接文件字体变红
3.修改link-test1内容(会自动创建链接文件123.txt),链接文件字段变浅蓝
4.删除刚刚自动创建的123.txt,链接文件字体变红
5.创建链接文件link-test2去链接linktest.txt,链接文件字段变浅蓝
6.如何在包含许多符号链接的目录中查找损坏的符号链接
命令:find -xtype l 查找损坏的符号链接
命令:find -type l 查找所有符号链接
命令:find -type l -ls
7.通过-exec指定操作。 例如,删除当前目录中断开的软链接
命令:find -xtype l -exec rm -f {} \;
8、结合find命令返回目录中所有符号链接的连接名称
命令:find . -maxdepth 1 -type l -print | cut -c3- | grep -v "#" 返回所有符号连接名称
命令:find . -maxdepth 1 -xtype l -print | cut -c3- | grep -v "#" 返回损坏的符号连接名称
9、文件夹软链接
ln -s [源目录] [目标目录]
例如:使用命令ln -s /home/sftpdata /n9share
由于源目录软链接会出现在目标目录的下一级路径, 即在 /n9share
中会看见/sftpdata
目录。
进入 /ngshare/sftpdata
,即为进入 /home/sftpdata
五、硬链接
命令:ln sourcelink/linktest.txt link
inode节点一样,表示是指向内一内存地址;
删除链接文件,link变成普通文件,依然指向同一内存地址,所以可以打开链接文件。