首页 > 代码库 > 50-ln 简明笔记

50-ln 简明笔记

为文件建立链接

ln [optionsexisting-file [new-link]

ln [optionsexisting-file-list directory

 

ln可以为一个或多个文件创建硬链接或符号(软)链接。对于目录,只能创建符号链接,而不能创建硬链接

 

参数

第一种格式:existing-file 是要创建链接的文件的路径名,new-link 是新链接的路径名。当创建符号链接时,existing-file 可以是目录。

                    如果省略new-linkln就在工作目录中为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.硬链接有一定局限性,因此符号链接适用范围更广

50-ln 简明笔记