简明Linux命令行笔记:ln
为文件建立链接
ln [options] existing-file [new-link]
ln [options] existing-file-list directory
ln可以为一个或多个文件创建硬链接或符号(软)链接。对于目录,只能创建符号链接,而不能创建硬链接
参数
第一种格式:existing-file 是要创建链接的文件的路径名,new-link 是新链接的路径名。当创建符号链接时,existing-file 可以是目录。
如果省略new-link,ln就在工作目录中为existing-file创建一个链接,新链接使用与existing-file相同的文件名
第二种格式:existing-file-list 是要创建链接的普通文件的路径名列表,ln将在目录directory中创建新的链接,链接名与原文件名相同
选项
-b 如果需要创建的目标链接已存在相同文件名,则备份
-f 强制创建目标链接
-i 覆盖相同文件名时提示
-s 创建符号链接
注意
硬链接:默认情况下,ln用来创建硬链接,硬链接与原始文件无法区分且无法指向目录。同一个文件的所有硬链接必须位于相同的文件系统中,
符号链接:符号链接可以指向目录,并且能够位于不同的文件系统中
示例
ln 创建硬链接
$ ln /home/siu/BackupName.sql . $ ls -l 总用量 0 -rw-r--r-- 2 siu siu 0 1月 7 13:01 BackupName.sql
这里在当前目录下创建了一个文件硬链接,后面的.也可以省略
ln -s 创建符号链接
$ ln -s /tmp/ ./abc $ ls -l 总用量 0 lrwxrwxrwx 1 siu siu 5 1月 8 20:07 abc -> /tmp/
此处为/tmp创建了一个符号链接/abc
ln -sb
$ ln -sb aa bb $ ls -l 总用量 0 -rw-r--r-- 1 siu siu 0 1月 8 20:11 aa lrwxrwxrwx 1 siu siu 2 1月 8 20:11 bb -> aa -rw-r--r-- 1 siu siu 0 1月 8 20:11 bb~
创建符号链接,并备份已有的文件
ln -sf
$ ln -s aa cc ln: 无法创建符号链接"cc": 文件已存在 $ ln -sf aa cc $ ls -l 总用量 0 -rw-r--r-- 1 siu siu 0 1月 8 20:11 aa lrwxrwxrwx 1 siu siu 2 1月 8 20:11 bb -> aa -rw-r--r-- 1 siu siu 0 1月 8 20:11 bb~ lrwxrwxrwx 1 siu siu 2 1月 8 20:13 cc -> aa
强制创建符号链接
ln -si
$ ln -si aa bb ln:是否替换"bb"? y $ ls -l 总用量 0 -rw-r--r-- 1 siu siu 0 1月 8 20:14 aa lrwxrwxrwx 1 siu siu 2 1月 8 20:14 bb -> aa
创建符号链接时进行提示
Tips
1.硬链接通常和普通文件一样,无法区分其是否为链接
2.硬链接大小属性和原文件一样,如果删除原文件,硬链接同样可以使用
3.硬链接有一定局限性,因此符号链接适用范围更广