Linux ln命令

日期:2019-11-15编辑作者:操作系统

ln命令用来为文件创件链接,链接类型分为硬链接和软链接(符号链接)两种

里提示一下:ubuntu的翻译很多都是字面直译,存在很多问题,所以建议大家参照我这里的解释。当然本来也是有些赶文的嫌疑,望指正。

1)软连接和Windows系统中的快捷方式有点类似

经常在linux上操作,有在不同的目录下切换某几个固定的命令,或者修改几个固定的文件,这时候,如果能在一个目录下就操作他们,会是一件多么轻松的事情。我们来看看链接命令ln

2)硬链接,相当于多了一个文件名指向同一块内存空间,目录无法创建硬链接,不可以跨文件系统创建

全称

 www.129028.com金沙 1

ln 全称是link 顾名思义,这是一个建立一个链接。怎么去理解呢?它的功能类似于Mac OS的别名或者Windows的快捷方式, 删除不会影响文件本身。

 

说明:(直接看看斜体,就行了)

删除文件名不影响硬链接与文件的使用,但软链接却无法继续使用

链接可分为两种:硬链接(hard link)与软链接(symbolic link),

1、用法

不论是那种类型的链接, 都提供了一种双向引用的手段 -- 也就是说, 不管你用文件的那个名字对文件内容进行修改, 你修改的效果都即会反映到原始名字的文件, 也会反映到链接名字的文件.当你工作在更高层次的时候, 才会发生软硬链接的不同. 硬链
 接的优点是, 原始文件与链接文件之间是相互独立的 -- 如果你删除或者重命名老文件, 那么这种操作将不会影响硬链接的文件, 硬链接的文件讲还是原来文件的内容.
然而如果你使用软链接的, 当你把老文件删除或重命名后, 软链接将再也找不到原来文件的内容了. 而软链接的优点是它可以跨越文件系统(因为它只不过是文件名的一个引用, 而并不是真正的数据). 与硬链接的另一个不同是, 一个符号链接可以指向一个
 目录.

ln [选项] [源文件或目录] [目标文件或目录]

例子:

2、命令选项

1.$ln file.txt  file.copy

-b  删除,覆盖以前建立的链接
-d  创建指向目录的硬链接(只适用于超级用户)
-f  强制执行,操作前不询问
-i  交互模式,文件存在则提示用户是否覆盖
-n  把符号链接视为一般目录
-s  软链接(符号链接)
-v  显示详细的处理过程

file.copy就是 file.txt的一个快捷方式

3、实例

查看—help

1)对 a.txt 创建软链接 a_softlink.txt

复制代码 代码如下:

 

用法:ln [选项]... [-T] 目标 链接名 (第一种格式)
或:ln [选项]... 目标 (第二种格式)
或:ln [选项]... 目标... 目录 (第三种格式)
或:ln [选项]... -t 目录 目标... (第四种格式)
在第一种格式中,创建指定名称且指向指定目标链接。
 在第二种格式中,在当前目录创建指向目标位置的链接。
 在第三、四种格式中,在指定目录中创建指向指定目标的链接。
 默认创建硬链接,当使用--symbolic 时创建符号链接。
 当创建硬链接时每个指定的目标都必须存在。符号链接可以指向任意的位置,
 当链接解析正常时,将其解析为一个与其父目录关联的链接。
长选项必须使用的参数对于短选项时也是必需使用的。
  --backup[=CONTROL]     为每个已存在的目标文件创建备份文件
-b 类似--backup,              但不接受任何参数
www.129028.com金沙,-d, -F,   --directory                创建指向目录的硬链接(只适用于超级用户)
-f, --force                              强行覆盖任何已存在的链接文件
-i, --interactive                       覆盖链接文件前进行确认
-L, --logical                            将硬链接创建为符号链接引用
-n, --no-dereference               如果目的地是一个链接至某目录的符号链接,会将
                                               该符号链接当作普通文件处理,先将该已存在的链
                                               接备份或覆盖
-s, --symbolic                         创建符号链接(软链接)而非硬链接
-S, --suffix=后缀                   自行指定链接文件的后缀
-t, --target-directory=目录     在指定目录中创建链接
-T, --no-target-directory          将链接名称当作普通文件
-v, --verbose                           链接前打印相关信息

[root@mini ~]# ls
anaconda-ks.cfg  a.txt
[root@mini ~]# ln -s a.txt a_softlink.txt
[root@mini ~]# ls
anaconda-ks.cfg  a_softlink.txt  a.txt

--help 显示此帮助信息并退出
--version 显示版本信息并退出

 

备份文件的后缀为"~",除非以--suffix 选项或是SIMPLE_BACKUP_SUFFIX
环境变量指定。版本控制的方式可通过--backup 选项或VERSION_CONTROL 环境
 变量来选择。以下是可用的变量值:

2)对 a.txt 创建硬链接  a_hardlink.txt

使用 -s 选项会忽略 -L 和 -P。
 否则当源为一个符号链接(默认-P)时,会由最后指定的一个选项来控制行为。

 

none, off 不进行备份(即使使用了--backup 选项)
numbered, t 备份文件加上数字进行排序
existing, nil 若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
simple, never 永远使用普通方式备份

[root@mini ~]# ls
anaconda-ks.cfg  a_softlink.txt  a.txt
[root@mini ~]# ln a.txt a_hardlink.txt 
[root@mini ~]# ll
总用量 4
-rw-r--r--. 2 root root    0 7月  21 14:20 a_hardlink.txt
-rw-------. 1 root root 1530 7月  19 19:24 anaconda-ks.cfg
lrwxrwxrwx. 1 root root    5 7月  21 14:21 a_softlink.txt -> a.txt
-rw-r--r--. 2 root root    0 7月  21 14:20 a.txt

解读:

 

  1. -s

 

创建软链接 ln -s file.txt /${dir}/file.copy

本文由www.129028.com金沙发布于操作系统,转载请注明出处:Linux ln命令

关键词:

www.129028.com金沙:IOS开发环境搭建教程

我的 Ubuntu 镜像是在「清华大学开源软件镜像网」下载的,版本号是16.04 安装条件: 硬件:一台拥有支持虚拟技术的...

详细>>

【www.129028.com金沙】Linux命令-----CP命令

cp命令 用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名...

详细>>

DNS服务-主从架构搭建

为了网站的可靠性,通常都会有多个DNS服务器,万一DNS服务器宕机了,可以实现DNS服务器容错 通常都会有一个主DNS服...

详细>>

Linux安装telnet

  三、测试 [root@localhost www.129028.com金沙,~]# rpm -qa telnet telnet-0.17-47.el6_3.1.x86_64   2、若未安装,则安装telnet-server,否...

详细>>