linux 下的一个指令 ln

作用: 创建软链接或者硬链接

Linux 系统下每创建一个文件,系统都会为此文件生成一个 index node 简称(inode) ,而每一个文件都包含用户数据(user data) 与 元数据(metadata)

用户数据里记录了文件的真正内容.

元数据里记录的是文件的附加属性,如 文件大小,创建时间,所有者等,其中 上面提到的 index node 就保存在元数据中.在linux 中文件名并不是文件的唯一标识,index onde 才是唯一标示,系统查找文件也是通过 index node 来查找内容数据块.

如何查看文件的 index node:

➜  /Users/zhangzhi  >ls -i
31615656 AndroidStudioProjects 30836545 go
 1152719 Applications          49115578 images
31827389 CNode                 13208576 ktsgs.zip
  595399 Desktop               44722768 pandoc_demo
  595275 Documents             49218456 pgadmin.log
  595277 Downloads             15078624 pomelo
 7094352 LevelTest              1009499 project
 7098493 LevelTest.zip          1011801 qdb
  595388 Library                5901898 qdb.zip
  595439 Movies                23150187 test
  595441 Music                  1010768 tmp
  595443 Pictures              17956310 trunk
  595445 Public                17970255 trunk.zip
32072972 app                   41999857 webwork
 1009500 code                  13208610 游戏配置
22509232 databak

我们看到的前面的数字序列就是 index node

如何理解呢,你可以想象成 windows 操作系统里的快捷键.对同一个文件的访问提供了多个入口.

指令:

ln  [option] link_file  source_file

(link_file是待建立链接文件的文件,source_file是新创建的链接文件)

-f 建立时,将同档案名删除.

-i 删除前进行询问.

示例:

ln -s  myfile mylink      建立myfile 文件的软链接 mylink

ln myfile mylink          建立myfile 的硬链接 mylink

软链接

ln -s myfile mylink

软链接创建后,用户数据中存储的并不是文件本身的记录,而是一个指向 原文件路径的一个指针.但是它有自己的 index node 序列.

所以 ,软链接其实就是一个新的文件,但是这个文件很特殊,因为他的用户数据中放的不是文件内容,而是一个指向其他文件的指针.

软链接有下面几个特点:

多个软链接有多个不同的 index node

不仅可以对文件创建,还可以对目录创建软链接

软链接可以交叉文件系统

删除软链接 并不会影响原文件,但是原文件被删除,这个软链接就成了一个死链接.

硬链接

ln myfile mylink

硬链接创建后,用户数据中存储的是文件本身记录,其他他的用户数据和元数据都和 myfile 一样,唯一不同的是文件名.

所以硬链接就是同一个文件有了多个文件名, 但是多个文件名都指向了 同一个 index node

这样看来,硬链接就是有多个别名的同一个文件.

硬链接有下面几个特别:

出自:linux 下的使用 ln 创建 软链接连接 和 硬链接

他们有相同的 index node

有相同的数据记录

只能在已经存在文件上创建 硬链接

删除其中任何一个,其他硬链接不受影响.

只能对文件做硬链接

linux 下的使用 ln 创建 软链接 和 硬链接的更多相关文章

  1. Windows和Linux创建软链接和硬链接

    1.Wondows创建软链接和硬链接 mklink [/d] [/h] link target /d--创建目录软链接:默认为文件软链接:创建目录链接时必须使用该选项不然创出的软链接无效 /h--创建 ...

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

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

  3. linux 创建软链接和硬链接

    Linux 系统中有软链接和硬链接两种特殊的“文件”. 软链接可以看作是Windows中的快捷方式,可以让你快速链接到目标档案或目录. 硬链接则透过文件系统的inode来产生新档名,而不是产生新档案. ...

  4. Linux学习(一):软链接和硬链接

    今天起,决定开始自学Linux命令及Shell脚本,并用Linux学习(命令行,Shell及其他知识点)这一系列记录下自己的心路历程,内容不分先后,只记录自己觉得有必要的,简单的就不记了! 第一个知识 ...

  5. Linux上ln命令详细说明及软链接和硬链接的区别

    硬链接(hard link) UNIX文件系统提供了一种将不同文件链接至同一个文件的机制,我们称这种机制为链接.它可以使得单个程序对同一文件使用不同的名字.这样的好处是文件系 统只存在一个文件的副本, ...

  6. Linux 软链接和硬链接的理解与学习

    理解前提: 首先要知道 Linux任意一个文件包含2个信息:第一个信息就是文件本身存的内容,第二个信息是文件的控制信息(读写,路径,大小等等),这2个信息是分开存储的,明白这点非常重要 理解总结: L ...

  7. Linux 软链接和硬链接

    系统链接文件 文件有文件名和数据,在Linux上被分成两个部分:用户数据(user data)与元数据(metadata) 用户数据:文件数据块(data block),数据块是记录文件真实内容的地方 ...

  8. 描述Linux下软链接和硬链接的区别(计时2分钟)

    在linux系统中,链接分两种 :一种被称为硬链接(Hard Link),另一种被称为符号链接或软链接(Symbolic Link). 1)默认不带参数情况下,ln命令创建的是硬链接. 2)硬链接文件 ...

  9. Linux下通过受限bash创建指定权限的账号

    在日常业务运维中,有时为了配合解决问题,需要给非运维人员开通系统账号,用于查询日志或代码.通常为了系统安全或避免不必要的误操作等目的,会将账号权限降至最低.下面介绍下在Linux下通过受限bash创建 ...

随机推荐

  1. Unity3D 新人学习的一点感想

    想到那里写到那里吧 1.Unity3D的优点大家都知道:组件化.c#语言.可见即所得. 当初刚开始学习的是cocos2dx,c++的货,觉得还是写的不错的,也是国人开发的,真的代码很容易懂,直接看引擎 ...

  2. 【Unity Shaders】学习笔记——SurfaceShader(九)Cubemap

    [Unity Shaders]学习笔记——SurfaceShader(九)Cubemap 如果你想从零开始学习Unity Shader,那么你可以看看本系列的文章入门,你只需要稍微有点编程的概念就可以 ...

  3. break 和 continue

    break 和 continue 相同点: 都 用在循环体内,如 switch.for.while.do while的程序块中,用于控制程序循环语句的执行 不同点: break可以离开当前switch ...

  4. php接口post提交方法 。

    方法一,用 file_get_contents function send_post($url, $post_data) { //$postdata = http_build_query($post_ ...

  5. Leetcode028. Implement strStr()

    class Solution { public: int strStr(string haystack, string needle) { ; //needle empty ; //haystack ...

  6. tech

    流式计算框架storm.spark.genfire.esper(CEP)

  7. 纯CSS气泡框实现方法探究

    气泡框(或者提示框)是网页中一种很常见的元素,大多用来展示提示信息,如下图所示: 拆分来看,形如这种气泡框无外乎就是一个矩形框+一个指示方向的三角形小箭头,要制作出这样的气泡框,如果解决了三角形小箭头 ...

  8. 在PHP应用中简化OAuth2.0身份验证集成:OAuth 2.0 Client

    在PHP应用中简化OAuth2.0身份验证集成:OAuth 2.0 Client   阅读目录 验证代码流程 Refreshing a Token Built-In Providers 这个包能够让你 ...

  9. AJAX验证用户是否存在

    <html> <head> <title> ajax验证 </title> </head> <body> <input t ...

  10. Android IOS WebRTC 音视频开发总结(三一)-- 自定义传输实现一对多

    本文主要介绍基于Webrtc的多人视频会议的简单实现,文章来自博客园RTC.Blacker,支持原创,转载请说明出处. 前面提到基于开源框架的视频会议都存在诸多问题,所以我们通过重写WEBRTC传输模 ...