硬链接:相当于文件的多个入口,作用:备份文件,创建快照等

软链接:相当于windows的快捷方式

命令格式:

ln option 源文件 目标文件

-s: 创建软链接

1,创建硬链接:

ghostwu@dev:~/linux/cp$ ls
ghostwu.txt
ghostwu@dev:~/linux/cp$ ls -l
total
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu.txt
ghostwu@dev:~/linux/cp$ ln ghostwu.txt ghostwu_hardlink
ghostwu@dev:~/linux/cp$ ls -l
total
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu_hardlink
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu.txt

硬链接与源文件的inode节点是相同的,因为指向的是同一个节点:

ghostwu@dev:~/linux/cp$ ls -ihl
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu_hardlink
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu.txt

都可以查看内容

ghostwu@dev:~/linux/cp$ cat ghostwu.txt
hello,my name is ghostwu
ghostwu@dev:~/linux/cp$ cat ghostwu_hardlink
hello,my name is ghostwu

删除硬链接,不会影响源文件

ghostwu@dev:~/linux/cp$ rm ghostwu_hardlink
ghostwu@dev:~/linux/cp$ ls -ilh
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu.txt
ghostwu@dev:~/linux/cp$ cat ghostwu.txt
hello,my name is ghostwu

恢复硬链接,跟删除之前的inode一样的

ghostwu@dev:~/linux/cp$ ls -ilh
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu.txt
ghostwu@dev:~/linux/cp$ ln ghostwu.txt ghostwu_hardlink
ghostwu@dev:~/linux/cp$ ls -ilh
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu_hardlink
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu.txt

删除源文件,不会影响硬链接

ghostwu@dev:~/linux/cp$ ls -ilh
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu_hardlink
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu.txt
ghostwu@dev:~/linux/cp$ rm ghostwu.txt
ghostwu@dev:~/linux/cp$ ls -ilh
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu_hardlink
ghostwu@dev:~/linux/cp$ cat ghostwu_hardlink
hello,my name is ghostwu

可以通过硬链接恢复源文件

ghostwu@dev:~/linux/cp$ ln ghostwu_hardlink ghostwu.txt
ghostwu@dev:~/linux/cp$ ls -ilh
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu_hardlink
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu.txt

创建软链接

ghostwu@dev:~/linux/cp$ ls -ilh
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu_hardlink
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu.txt
ghostwu@dev:~/linux/cp$ ln -s ghostwu.txt ghostwu_softlink
ghostwu@dev:~/linux/cp$ ls -ilh
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu_hardlink
lrwxrwxrwx ghostwu ghostwu 5月 : ghostwu_softlink -> ghostwu.txt
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu.txt

软链接的i节点跟源文件不同,文件类型为l

ghostwu@dev:~/linux/cp$ cat ghostwu_softlink
hello,my name is ghostwu
ghostwu@dev:~/linux/cp$ ls -ilh
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu_hardlink
lrwxrwxrwx ghostwu ghostwu 5月 : ghostwu_softlink -> ghostwu.txt
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu.txt

删除软链接,不会影响硬链接和源文件

ghostwu@dev:~/linux/cp$ rm ghostwu_softlink
ghostwu@dev:~/linux/cp$ ls -ilh
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu_hardlink
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu.txt
ghostwu@dev:~/linux/cp$ cat ghostwu.txt
hello,my name is ghostwu
ghostwu@dev:~/linux/cp$ cat ghostwu_hardlink
hello,my name is ghostwu

删除源文件后,软链接不能查看内容,受到影响,硬链接不受影响

ghostwu@dev:~/linux/cp$ ls -ilh
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu_hardlink
lrwxrwxrwx ghostwu ghostwu 5月 : ghostwu_softlink -> ghostwu.txt
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu.txt
ghostwu@dev:~/linux/cp$ rm ghostwu.txt
ghostwu@dev:~/linux/cp$ ls -ilh
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu_hardlink
lrwxrwxrwx ghostwu ghostwu 5月 : ghostwu_softlink -> ghostwu.txt
ghostwu@dev:~/linux/cp$ cat ghostwu_softlink
cat: ghostwu_softlink: No such file or directory
ghostwu@dev:~/linux/cp$ cat ghostwu_hardlink
hello,my name is ghostwu

通过硬链接恢复源文件,软链接又可以使用了

ghostwu@dev:~/linux/cp$ ls -ilh
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu_hardlink
lrwxrwxrwx ghostwu ghostwu 5月 : ghostwu_softlink -> ghostwu.txt
ghostwu@dev:~/linux/cp$ ln ghostwu_hardlink ghostwu.txt
ghostwu@dev:~/linux/cp$ ls -ilh
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu_hardlink
lrwxrwxrwx ghostwu ghostwu 5月 : ghostwu_softlink -> ghostwu.txt
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu.txt
ghostwu@dev:~/linux/cp$ cat ghostwu_softlink
hello,my name is ghostwu

不能为目录创建硬链接

ghostwu@dev:~/linux/cp$ ln /home/ghostwu/ ghostwu_home
ln: /home/ghostwu/: hard link not allowed for directory

但是可以为目录创建软链接

ghostwu@dev:~/linux/cp$ ln -s /home/ghostwu/ ghostwu_home
ghostwu@dev:~/linux/cp$ ls -ilh
total .0K
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu_hardlink
lrwxrwxrwx ghostwu ghostwu 5月 : ghostwu_home -> /home/ghostwu/
lrwxrwxrwx ghostwu ghostwu 5月 : ghostwu_softlink -> ghostwu.txt
-rw-rw-r-- ghostwu ghostwu 5月 : ghostwu.txt

Linux常用基本命令(软链接与硬链接 )的更多相关文章

  1. 深入解读键值产生原理,linux中的软链接和硬链接(转)

    键值 = 文件标示符 + 项目ID 当用到进程间的通信时, 必须要注意到的是键值是怎么产生的,我们知道任何一个文件时通过文件名来访问的, 而内核在对应的给其一个值,也就是文件标示符. 系统建立IPC通 ...

  2. 2017-7-18-每日博客-关于Linux下的软链接和硬链接.doc

    ln命令 该命令在文件之间创建链接.这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称.对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题. 如果链 ...

  3. Linux学习笔记 软链接和硬链接

    Linux 中,"everything is file".接下来给大家介绍 linux 如何通过链接,达到节省磁盘空间.共享文件等目的.链接文件有两种方式,软链接(soft lin ...

  4. Linux文件的软链接和硬链接

    1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link).还有一种被称为符号链接(Symbolic Link).默认情况下.ln命令产生硬链接. 1.1索引节点 索引节点是 ...

  5. Linux中的软链接与硬链接

    软链接相当于windows的快捷方式,当源文件不存在时,软链接失效. 链接是指向文件名,当指向的文件名字删除的时候,就找不到源文件了.硬链接是指向文件本身,删除一个文件名字,还是可以找到源文件的.ls ...

  6. linux下的软链接与硬链接

    在 Linux 底下的连结档有两种,一种是类似 Windows 的快捷方式功能的文件,可以让你快速的链接到目标文件(或目录);这种链接称为软链接. 另一种则是透过文件系统的 inode 连结来产生新档 ...

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

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

  8. 转: linux文件链接(软链接和硬链接)

    链接:一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法. Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic l ...

  9. Linux之软链接与硬链接

    什么是链接? 链接简单说实际上是一种文件共享的方式,是 POSIX 中的概念,主流文件系统都支持链接文件. 它是用来干什么的? 你可以将链接简单地理解为 Windows 中常见的快捷方式(或是 OS ...

随机推荐

  1. Python 读取文件中unicode编码转成中文显示问题

    Python读取文件中的字符串已经是unicode编码,如:\u53eb\u6211,需要转换成中文时有两种方式 1.使用eval: eval("u"+"\'" ...

  2. 「PKUSC2018」主斗地(暴搜)

    这道斗地主比 \(PKUWC\) 那道可做多了... 我们用 \(NOIP\) 那道斗地主的思路:暴搜出三代和四代,贪心出散牌. 还有jry为什么要出xx网友而不出他的另一个老婆 我们发现两个人的每回 ...

  3. maven build的常用生命周期

    常用的maven build goals: validate - validate the project is correct and all necessary information is av ...

  4. C++类和对象(一)&&实现offsetof宏&&this指针

    一.目录 1.对象的相关知识 2.类的定义 3.类的实例化 4.类对象模型 5.模拟实现offsetof宏 6.this指针 二.正文 1.对象的相关知识 C语言是面向过程的,关注的是过程,分析求解问 ...

  5. typescript-koa-postgresql 实现一个简单的rest风格服务器 —— 连接 postgresql 数据库

    接上一篇,这里使用 sequelize 来连接 postgresql 数据库 1.安装 sequelize,数据库驱动 pg yarn add sequelize sequelize-typescri ...

  6. 【rocketMQ】1、搭建MQ服务器,生产一个订单与消费一个订单

    1. 先解压 2. maven编译安装.(注意虚拟机采用nat网络模式,需要联网) mvn -Prelease-all -DskipTests clean install -U 启动nameser节点 ...

  7. C# 发送HTTP请求超时解决办法

    request.GetResponse();超时问题的解决,和HttpWebRequest多线程性能问题,请求超时的错误, 解决办法 1.将http的request的keepAlive设置为false ...

  8. 全网最详细的Sublime Text 3的插件官方网站(图文详解)

    不多说,直接上干货! 全网最详细的Windows里下载与安装Sublime Text *(图文详解) 全网最详细的Sublime Text 3的激活(图文详解) 全网最详细的Sublime Text ...

  9. JDBC Oracle sys 用户连接

    Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection( &quo ...

  10. 回头再看看babel的实现原理

    一.前言 babel在大家的工作中应该没少用,但是为什么它能将ES6转成ES5呢?一个有态度的前端er肯定会想抛开迷雾,看看其中的奥秘. 记得很早前自己有去了解过相关方面的内容,但是时间久远,现在已是 ...