每天一个Linux命令(32):ln
来源:互联网 发布:凤台县残疾人数据 编辑:程序博客网 时间:2024/06/06 00:25
ln的功能是为某个文件在另外一个位置建立一个同步链接。当在不同的目录要用到相同的文件时,我们不需要在每个目录下都放一个相同的文件,我们只要在某个固定的目录,放上文件,然后在其它的目录下用ln命令链接(link)到它就可以,不必重复的占用磁盘空间。
1. 命令格式
ln [参数] [源文件或目录] [目标文件或目录]
2. 命令功能
我们可以将链接(link)视为文件的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link)。硬链接就是一个文件可以有多个名称,而软链接则是产生一个特殊的文件,指向另一个文件的位置;硬链接可存在于同一个文件系统中,而软链接可以跨越不同的文件系统。
软链接
软链接以路径的形式存在,类似于Windows系统中的快捷方式
软链接可以跨多个文件系统 ,硬链接却不可以
软链接可以对一个不存在的文件名进行链接
软链接可以对目录进行链接
硬链接
硬链接以文件副本的形式存在,但不占用实际空间。
不要给目录创建硬链接
只有在同一个文件系统中才能创建硬链接
这里有两点要注意:
第一,ln命令会保持每一个链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;
第二,ln的链接又分软链接和硬链接两种,软链接就是ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接 ln 源文件 目标文件,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
ln指令用在链接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。
3. 命令参数
3.1 必要参数
-b,删除或覆盖以前建立的链接
-d,允许超级用户制作目录的硬链接
-f,强制执行
-i,交互模式,提示用户是否覆盖已存在的文件
-n,把符号链接视为一般目录
-s,软链接(符号链接)
-v,显示详细过程
3.2 选择参数
-S,“-S <字尾备份字符串> ” 或 “–suffix=<字尾备份字符串>”
-V,“-V <备份方式>” 或 “ –version-control=<备份方式>”
–help,显示帮助信息
–version,显示版本信息
4. 使用实例
例一:为文件创建软链接
命令:ln -s log2013.log link2013
说明:为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效。
# ll-rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log# ln -s log2013.log link2013# lllrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log-rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log
例二:为文件创建硬链接
命令:ln log2013.log ln2013
说明:为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同
# lllrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log-rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log# ln log2013.log ln2013# lllrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log-rw-r--r-- 2 root bin 61 11-13 06:03 ln2013-rw-r--r-- 2 root bin 61 11-13 06:03 log2013.log# cat ln2013 hostnamebaidu=baidu.comhostnamesina=sina.comhostnames=true
例三:链接完毕后,删除和重建原文件
# lllrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log-rw-r--r-- 2 root bin 61 11-13 06:03 ln2013-rw-r--r-- 2 root bin 61 11-13 06:03 log2013.log# rm -rf log2013.log # lllrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log-rw-r--r-- 1 root bin 61 11-13 06:03 ln2013# touch log2013.log# lllrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log-rw-r--r-- 1 root bin 61 11-13 06:03 ln2013-rw-r--r-- 1 root root 0 12-07 16:19 log2013.log# less > log2013.log<<EOF >2013-01>2013-02>2013-03>2013-04>2013-05>2013-06>2013-07>2013-08>2013-09>2013-10>2013-11>2013-12>EOF# lllrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log-rw-r--r-- 1 root bin 61 11-13 06:03 ln2013-rw-r--r-- 1 root root 96 12-07 16:21 log2013.log# cat link2013 2013-012013-022013-032013-042013-052013-062013-072013-082013-092013-102013-112013-12# cat ln2013 hostnamebaidu=baidu.comhostnamesina=sina.comhostnames=true
说明:
删除源文件后,并没有影响到硬链接;软链接文件在centos系统下不断的闪烁,提示源文件已经不存在。
重建源文件后,软链接不再闪烁,说明软链接已经成功,找到了链接文件系统;重建后,硬链接并没有受到源文件影响,其内容还是保留了源文件删除前的内容,说明硬链接已经失效。
例四:将文件链接为另一个目录下的相同名字
命令:ln log2013.log ./test3/
# ln log2013.log ./test3/# cd ./test3/# ll-rw-r--r-- 2 root root 96 12-07 16:21 log2013.log# less > log2013.log <<EOF>2013-01>2013-02>2013-03>2013-04>2013-05>2013-06>2013-07>2013-08>2013-09>2013-10>EOF# ll-rw-r--r-- 2 root root 80 12-07 16:36 log2013.log# cd ..# lllrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log-rw-r--r-- 1 root bin 61 11-13 06:03 ln2013-rw-r--r-- 2 root root 80 12-07 16:36 log2013.log# more log2013.log 2013-012013-022013-032013-042013-052013-062013-072013-082013-092013-10
说明:在test3目录中创建log2013.log的同名链接,修改test3目录中的log2013.log文件,同时也会同步到源目录的文件。
例五:给目录创建一个软链接
命令:ln -sv /opt/soft/test/test3 /opt/soft/test/test5
# lldrwxr-xr-x 2 root root 4096 12-07 16:36 test3drwxr-xr-x 2 root root 4096 12-07 16:57 test5## ln -sv test3 test5//test3是源文件目录,test5是链接目录# cd test5# lllrwxrwxrwx 1 root root 5 12-07 16:57 test3 -> test3# cd test3-bash: cd: test3: 符号连接的层数过多# rm -rf test3# ll# ln -sv /opt/soft/test/test3 /opt/soft/test/test5创建指向“/opt/soft/test/test3”的符号链接“/opt/soft/test/test5/test3”# lllrwxrwxrwx 1 root root 20 12-07 16:59 test3 -> /opt/soft/test/test3# cd test3# ll总计 4-rw-r--r-- 2 root root 80 12-07 16:36 log2013.log# touch log2014.log# ll总计 4-rw-r--r-- 2 root root 80 12-07 16:36 log2013.log-rw-r--r-- 1 root root 0 12-07 17:05 log2014.log
说明:
只能创建目录的软链接。
创建目录的软链接必须用绝对路径,使用相对路径会不成功,提示:符号连接的层数过多。
在链接目录中修改文件,会在源文件目录中同步变化。
- 每天一个Linux命令(32):ln
- 每天一个linux命令-ln
- 每天一个linux命令-ln
- 每天一个linux命令-ln
- 每天一个linux命令:ln 命令
- 每天一个linux命令:ln 命令
- 每天一个linux命令:ln 命令
- 每天一个linux命令:ln 命令
- 每天一个linux命令:ln 命令
- 【每天一个Linux命令】27. 创建链接命令ln
- 每天一个linux命令(35):ln 命令
- 每天一个linux命令(35):ln 命令
- 每天一个linux命令(35):ln 命令
- 每天一个linux命令(35):ln 命令
- 每天一个linux命令(35):ln 命令
- 每天一个linux命令(35):ln 命令
- 每天一个linux命令(35):ln 命令
- 每天一个 Linux 命令(35):ln 命令
- unit11
- NYOJ284坦克大战广度搜索
- linux初学 unit9 练习
- ch2 变量和基本类型
- iOS单元测试(作用及入门提升)
- 每天一个Linux命令(32):ln
- android高德定位使用
- SLIC超像素分割详解
- MyBatis延迟加载
- loadrunner添加服务器监控
- Java 查找指定文件夹下的所有文件中包含有中文的文件,并抠出中文
- tip8——intent的7个属性
- 将字符串按照传入的参数进行逆序
- Linux常用命令行3