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

软链接:相当于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. Linux Shell常用脚本整理

    轮询检测Apache状态并启用钉钉报警◆ #!/bin/bash shell_user="root" shell_domain="apache" shell_l ...

  2. day02 基本数据类型与运算符

    day02 1.基本数据类型 2.算术运算符 +,-,*,/,%,++,-- 3.赋值运算符 =,+=,-=,*=,/=,%= 4.关系运算符 +=,-=,*=,/=,%=  结果是boolean类型 ...

  3. mybatis Mapper XML 映射文件

    传送门:mybatis官方文档 Mapper XML 文件详解 一. 数据查询语句 1. select <select id="selectPerson" parameter ...

  4. 面试题-lazyMan实现

    原文:如何实现一个LazyMan 面试题目 实现一个LazyMan,可以按照以下方式调用: LazyMan('Hank'),输出: Hi, This is Hank! LazyMan('Hank'). ...

  5. POJ 2707

    #include<iostream> #include<stdio.h> #include<algorithm> using namespace std; int ...

  6. Task异步编程,刨根到底

    1. 编译器到底对await做了什么 await 一个异步操作的时候,实际上编译器会创建一个状态机,这个状态机包含了调用者的上下文变量,状态机使用yield迭代器实现,状态机由clr调度,每次运行都会 ...

  7. Android:异步处理之Handler、Looper、MessageQueue之间的恩怨(三)

    前言 如果你在阅读本文之前,你不知道Handler在Android中为何物,我建议你先看看本系列的第一篇博文<Android:异步处理之Handler+Thread的应用(一)>:我们都知 ...

  8. docker(一)

    一.docker 概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 linux 机器上,也可以实现虚拟化.容器是完全使用沙箱 ...

  9. 微服务之kong+consul(二)

    一.kong 1.使用kong来做服务网关,目前kong使用的是0.13版本现在地址:https://docs.konghq.com/install,kong的社区版没有dashboard,可以使用k ...

  10. 【SpringBoot系列4】SpringBoot定制自己的bean

    起因:SpringBoot我是越用越喜欢,但当SpringBoot出了问题的时候,我却无从下手,因为封装实在是太高度化了.然后之前有一个需求,使用SpringBoot提供的StringRedisTem ...