ln命令是Linux中的一个非常重要的命令,它为一个文件在另一位置创建同步链接,有两种:符号链接和硬链接。

【ln命令详解】ln [options] source dist

常用参数:

-f : 链接时先将与 dist 同名的文件删除 

-d : 允许系统管理者硬链结自己的目录 

-i : 在删除与 dist 同名的文件时先进行询问 

-n : 在进行软链接时,将 dist 视为一般的文件 

-s : 进行软链接(symbolic link) 

-v : 在连结之前显示其档名 

-b : 将在链结时会被覆写或删除的档案进行备份

一.符号链接(symbolic link):

只是在某一位置上对指定文件的一个镜像,是该文件的位置信息,会保持链接的同步性,可在不同的文件系统之间进行符号链接

1.先创建一个文本文件1.txt:touch命令创建一个空文本文件

2.创建1.txt的符号链接(软链接):

3.再查看:

该目录下多了2.txt而且是粗体。

这里看2.txt和1.txt的权限,以及大小。这时1.txt是空文本,而2.txt是有内容的

4.向1.txt中随便写入内容再查看:

注:1.txt与2.txt的inode号不同,因为2.txt是1.txt的符号链接,是1.txt的引用,2.txt中保存1.txt的位置信息,所以当1.txt为空时,2.txt仍有5个字节的大小,且当1.txt中由内容时,2.txt大小并不变。

linux系统通过inode来检索标识文件

2.txt文件类型是:符号链接文件,权限为:对所有用户都有读,写和执行的权限。

二.硬链接(hard link):

1.创建到1.txt到3.txt的硬链接:

注:1.txt与3.txt的inode相同,与符号链接不同。而且1.txt与3.txt大小文件权限属性相同,说明3.txt是1.txt的另一个名称(存在)。

2.readlink查看链接的目标文件:

3.改变2.txt为3.txt的链接文件:

创建到3.txt的符号链接2.txt,若该目录下有文件2.txt则覆盖

硬链接的两个限制:

1.不能创建到目录的硬链接

2.只有在同一个文件系统的文件之间才能创建硬链接

也可以对多个文件创建链接到某一目录:

ln -[f|n] [s] file1 dir1/file2 dir;会在dir目录下创建file1,file2两个链接文件

-f:若dir中已存在文件file1或file2,则会覆盖已存在文件,替换为要创建的文件

-n:若已存在目标路径,则系统报错,不会创建链接

三.链接产生的原因或链接存在的作用:

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。而且在任何一个目录下改变该文件,都会在同步到其他目录下。

【ARM-Linux开发】Linux链接 -ln的更多相关文章

  1. Linux 软链接 硬链接 ln命令(繁杂版)

    注意:创建软连接的时候,要用绝对路径!!! 这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln - ...

  2. Linux 软链接 硬链接 ln命令(简约说明版)

    注意:路径使用绝对路径!! 解决方法: 当我们需要在不同的目录下用到同一个文件时,会用到以下命令. 命令:ln 作用:为某一个文件在另外一个位置建立一个同步的链接 语法:ln [option] 源文件 ...

  3. BeagleBoneBlack Linux开发相关链接收藏

    ubuntu挂载vdi文件 官方linux代码地址 官方devicetree代码地址 [转]使用BBB的device tree和cape(重新整理版) iio: input: ti_am335x_ad ...

  4. linux 下的使用 ln 创建 软链接 和 硬链接

    linux 下的一个指令 ln 作用: 创建软链接或者硬链接 Linux 系统下每创建一个文件,系统都会为此文件生成一个 index node 简称(inode) ,而每一个文件都包含用户数据(use ...

  5. 【Qt开发】【VS开发】【Linux开发】OpenCV、Qt-MinGw、Qt-msvc、VS2010、VS2015、Ubuntu Linux、ARM Linux中几个特别容易混淆的内容

    [Qt开发][VS开发][Linux开发]OpenCV.Qt-MinGw.Qt-msvc.VS2010.VS2015.Ubuntu Linux.ARM Linux中几个特别容易混淆的内容 标签:[Qt ...

  6. linux命令大全之ln命令详解(创建软链接和硬链接)

    ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接,分为软链接.硬链接.软链接相当于windows的快捷方式,下面是使用方法和示例   ln是linux中又一 ...

  7. 应聘linux/ARM嵌入式开发岗位

    **************************************************************** 因为发在中华英才和智联招聘没有人采我所以我 在这里发布我的个人简历希望 ...

  8. Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核

    Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核 标签(空格分隔): Qemu ARM Linux 在上文<Qemu搭建ARM vexpress开发环 ...

  9. 【DSP开发】【Linux开发】基于ARM+DSP进行应用开发

    针对当前应用的复杂性,SOC芯片更好能能满足应用和媒体的需求,集成众多接口,用ARM做为应用处理器进行多样化的应用开发和用户界面和接口,利用DSP进行算法加速,特别是媒体的编解码算法加速,既能够保持算 ...

  10. 基于QEMU的ARM Cortex-A9开发板Vexpress-ca9的Linux内核的编译和运行

    宿主机:Ubuntu16.04 x64(Linux内核4.4.0) 交叉编译工具链:gcc-arm-linux-gnueabiarm-linux-gcc:4.4.3QEMU:2.5.0Linux ke ...

随机推荐

  1. nginx配置及使用

    偶尔会用到nginx部署项目,记录nginx配置备忘.主要有端口.地址及别名,代理转发和https配置. 配置文件为nginx.conf. 部署http项目: 1.找到http下的server配置项 ...

  2. Shiro (包含权限满足其中一个就通过的用法)

    方法/步骤 1 web.xml添加配置 <!-- shiro过滤器 --> <filter> <filter-name>shiroFilter</filter ...

  3. Linq to JSON/Json.NET

    Can I LINQ a JSON? http://stackoverflow.com/questions/18758361/can-i-linq-a-json Json.NET https://js ...

  4. 富文本编辑器复制word

    这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用 后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下) ...

  5. chrome出现“由贵单位管理”原因及解决方法

    谷歌Google在声明里表示: 由贵单位管理指的是由设备或者账户管理员例如企业管理器可以用来强制更改谷歌浏览器配置的企业级策略.例如可以直接通过远程方式向所有受控用户添加书签,当管理员有进行这类操作时 ...

  6. MongoDB-查询关键字/排序等

    查询关键字 并列查询$and # 条件都成立才可以查询到结果 db.stutent.find({$and:[{name:"小漩涡"},{age:30}]}) 或查询$or # 有一 ...

  7. poj 1458 Common Subsequence ——(LCS)

    虽然以前可能接触过最长公共子序列,但是正规的写应该还是第一次吧. 直接贴代码就好了吧: #include <stdio.h> #include <algorithm> #inc ...

  8. 一个简单的puppeteer爬虫

    const puppeteer = require("puppeteer"); const path = require('path'); const pathToExtensio ...

  9. 重读APUE(1)-lseek注意事项

    lseek使用的注意事项: 1. lseek的返回值,成功返回新的文件偏移量,失败返回-1,不能用<0判断:因为文件偏移量可能是正的,也可能是负的,所以不能使用<0判断成功与否:注意:对于 ...

  10. Flutter控制某个TextField获取焦点及失去焦点

    在项目中有时需要点击某个地方的时候让一个文本框获取焦点以弹起键盘~~比如前端经常使用的input.focus(),但是在flutter中没有.focus()这个方法~~不过我们可以通过FocusSco ...