总览

ln [options] source [dest]
ln [options]
source...directory

POSIX 选项:

[-f]

GNU 选项(缩写):

[-bdfinsvF] [-S backup-suffix] [-V
{numbered, existing, simple}]
[--help] [--version] [--]

描述

在Unix世界里有两个'link'(连接)概念,一般称之为硬连接和软连接。
一个硬连接仅仅是一个文件名。(一个文件可以有好几个文件名,只有将 最后一个文件名从磁盘上删除,才能把这个文件删掉。文件名的个数是由
ls(1)来确定的。所有的文件名都处于同一个状态,也就没有什么“源名字”
之说。通常文件系统里的一个文件的所有名字包含着一样的数据信息,不 过这样也不是必需的。)一个软连接(或符号连接)是完全不同的:它是
一个包含了路径信息的小小的指定文件。因此,软连接可以指向不同文件
系统里的文件(比如由NFS装载的不同机器文件系统上的文件),甚至可以
指向一个不一定确实存在的文件。在软连接文件被访问(系统调用open(2)
或stat(2))的时候,操作系统用该文件所包含的路径替换该文件的访问介
入点,从而实现对所指文件的访问。(用命令rm(1)和unlink(2)可以删除
连接,但不是删除该文件所指向的文件。系统指定调用lstat(2)和readlink(2)
来读取连接文件与其所指文件的状态。到底是对软连接文件操作,还是对被
指向文件操作,由于不同操作系统件存在不同的系统调用,而存在着差异。)

ln 在文件间产生连接。缺省时,产生硬连接,有-s选项,则产生符号(软)连接。

如果仅仅只给出一个文件名,那么ln将在当前目录里产生这个文件的连接,也就是说,以该文件(的最后一个)名称等同的名字在当前目录里产生一个连接(GNU范围内);如果最后一个参数是一个已存在的目录名,
ln
将在那个目录里给每一个源文件用以与源文件相同的文件名产生连接,(不同情况见以下--no-dereference的描述);如果只给出两个文件名,ln将产生源文件的连接;如果最后一个参数不是一个目录名或多于两个文件名,则报错。

缺省时,ln不删除已存在的文件或符号连接。(因此,它可以被用来锁定目标文件,即当dest已经不存在时)但选项-f可以强制执行。

在已存在的实现中,只有超级用户才能建立目录的硬连接。 POSIX
禁止系统调用link(2)和ln建立目录的硬连接(但是允许在不同的文件系统间建立硬连接)。

POSIX 选项

-f
删除已存在的目的文件。

GNU 选项

-d, -F, --directory
允许超级用户建立目录硬连接。
-f, --force
删除已存在的目的文件。
-i, --interactive
提示是否删除已存在的目的文件。
-n, --no-dereference
当所给出的目的文件名是一个目录的符号连接时,将其视为一般文件处理。

当目的目录名是一个确实存在的目录(不是一个符号连接)时,不进行模糊处理,而在那个目录里建立连接。但是当所指定的目的目录名是一个符号连接时,有两种方式来对待用户的要求。
ln 会视目的为一个普通目录,并且在里面建立连接。或者如同符号连接本身一样地视其为一个非目录。这种情况下,ln
将在建立新连接之前删除或备份这个符号连接。缺省地,把符号连接视为普通目录来对待。

-s, --symbolic
建立符号连接以替代硬连接。在不支持符号连接的系统上,这个选项仅仅会产生一个错误提示而已。
-v, --verbose
在建立连接前显示所操作的文件名。

GNU 备份选项

对于想备份那些有可能被覆盖、改写或者被破坏的文件, GNU提供了比如:cp, mv, ln,
install和patch等命令。可以使用-b参数生成备份文件。备份文件的名称由-V参数指定。假如备份文件的名称是通过原文件名加后缀而得到,那么要用-S参数来指定这个后缀。

-b, --backup
备份文件。
-S SUFFIX,-suffix=SUFFIX
在备份文件后添加"SUFFIX"(你的后缀)。如果不使用该参数,则使用环境变量
SIM_PLE_BACHUP_SUFFIX,如果该环境变量没有设置,则缺省地使用'~'。
-V METHOD,-version-control=METHOD
指定备份文件如何命名。参数"METHOD"可以是'numbered'(或't'), 

ln -在文件之间建立连接的更多相关文章

  1. Linux ln命令:在文件之间建立链接(硬链接和软链接)详解版1

    Linux ln命令:在文件之间建立链接(硬链接和软链接)详解版 < Linux创建文件及修改文件时间戳(touch命令)Linux复制文件和目录(cp命令) > <Linux就该这 ...

  2. (19)ln命令:在文件之间建立链接(硬链接和软链接)

    1.ext 文件系统(Linux 文件系统)是如何工作的. 我们在前面讲解了分区的格式化就是写入文件系统,而 Linux 目前使用的是 ext4 文件系统.如果用一张示意图来描述 ext4 文件系统 ...

  3. 使用link在两个容器之间建立连接(mysql)

    在使用Docker的时候我们会常常碰到这么一种应用,就是我需要两个或多个容器,其中某些容器需要使用另外一些容器提供的服务.比如这么一种情况:我们需要一个容器来提供mysql的数据库服务,而另外两个容器 ...

  4. Docker使用Link与newwork在容器之间建立连接

    一,使用 --link容器互联 docker 默认使允许container 互通的(通过-icc=false 关闭互通)同一个宿主机上的多个docker容器之间如果想进行通信,可以通过使用容器的ip地 ...

  5. TCP/IP|| 建立连接或终止

    1.TCP是一个面向连接的协议,在双方发送数据时需要之间建立连接. 当使用telnet命令是连接对应的端口产生TCP连接,通过tcpdump命令查看TCP报文段的输出 源>目的:标志 在标识中有 ...

  6. 读书笔记 effective c++ Item 31 把文件之间的编译依赖降到最低

    1. 牵一发而动全身 现在开始进入你的C++程序,你对你的类实现做了一个很小的改动.注意,不是接口,只是实现:一个私有的stuff.然后你需要rebuild你的程序,计算着这个build应该几秒钟就足 ...

  7. ALSA声卡驱动中的DAPM详解之五:建立widget之间的连接关系

    前面我们主要着重于codec.platform.machine驱动程序中如何使用和建立dapm所需要的widget,route,这些是音频驱动开发人员必须要了解的内容,经过前几章的介绍,我们应该知道如 ...

  8. Linux Socket过程详细解释(包括三次握手建立连接,四次握手断开连接)

    我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web 服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠s ...

  9. 网络IPC:套接字之建立连接

    如果处理的是面向连接的网络服务(SOCK_STREAM或SOCK_SEQPACKET),在开始交换数据以前,需要在请求服务的进程套接字(客户端)和提供服务的进程套接字(服务器)之间建立一个连接.客户端 ...

随机推荐

  1. druid监控每个服务数据库连接数和SQL执行效率

    1.下载druid 2.将刚刚下载的druid放入tomcat下的lib目录 3.配置要监控的服务启动文件,添加: -Dcom.sun.management.jmxremote.port=4090 - ...

  2. elasticsearch-head插件的安装

    2.4.1 安装nodejs Node.js是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js是一个Javascript运行环境(runtime environm ...

  3. java中的null类型---有关null的9件事

    摘自 https://blog.csdn.net/qq_25077777/article/details/80174763 今天听到一个问题,java中的null类型,null竟然是一种类型 java ...

  4. php 的路由简介 (一个简单的路由模式)

    <?php $_SERVER['REQUEST_URI'] = '/post/edit/1024?foo=bar'; $uri = explode('/', parse_url($_SERVER ...

  5. 配置 setting镜像在nexus私服上下载

    在你的本地仓库上 setting文件中配置,一旦nexus服务关闭是无法下载的 1 配置nexus镜像 <mirror> <id>central1</id> < ...

  6. 清北学堂2019.7.18 & 清北学堂2019.7.19

    Day 6 钟皓曦 经典题目:石子合并 可以合并任意两堆,代价为数量的异或(^)和 f[s]把s的二进制所对应石子合并成一堆所花代价 枚举s的子集 #include<iostream> u ...

  7. Spring 缓存切面

    缓存切面:[通知+目标方法调用] 缓存操作执行过程: 1)如果是同步调用[sync=true],则首先尝试从缓存中读取数据,读取到则直接返回: 否则执行目标方法,将结果缓存后返回. 2)如果不是同步调 ...

  8. eclipse 4.32 安装 gradle

    更新网址  http://dist.springsource.com/release/TOOLS/gradle

  9. 杂项-PIN:百科

    ylbtech-杂项-PIN:百科 个人身份识别码(英语:Personal identification number,缩写为 PIN),又译为用户个人识别号码,常被称为PIN码(PIN number ...

  10. ES6中变量的解构赋值

    1.数组的解构赋值 基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 输出: 上面代码表示,可以从数组中提取值,按照对应位置,对变 ...