链接

在谈软链接与硬链接之前,先来说说文件系统基础知识。

Linux 系统中,一切皆文件。
文件包含两部分:文件属性与权限(inode),文件内容(data-block)。
一个文件可由1个inode与多个block组成。
链接亦可理解为为文件取多个(相同或不相同)名字。

系统中每个目录本身看作一个文件(简称为目录文件),而目录下的每个子目录或一般文件(简称为记录文件)也视为文件。

目录文件拥有一个inode,其block中存储目录所包含文件的文件名及其与文件的关联性
每个记录文件对应一个inode号及N个block块。
注意,文件名并不记录在文件的inode或block中,而是记录在文件所在目录文件的block中。
故文件名的修改删除与目录的w权限有关。
一般情况下,读取文件是从根目录开始的,一层层读取。

接下来,我们来正式谈谈软硬链接的问题。

软硬链接的区别就在于,链接所指向的inode不同。

如为硬链接,目录文件的block,存储的文件关联性会指向源文件的inode;
如为软链接,会在目录下加一条记录文件,独立占用inode与block,
且记录文件block中存储的是源文件的文件名(文件读取时会根据文件名查找文件)。

常用命令

用法:ln [-sf] sourcefile targetfile
参数:
-s 软链接
-f 若目标文件已存在,将目标文件删除后再创建
默认是硬链接。

相关链接

  • 查看文件的链接数: ls -l FILE
  • 查看文件的inode号: ls -l -i FILE
  • 查看系统磁盘的block总数:fdisk -l
  • 查看磁盘的inode与block情况:dumpe2fs /dev/vda1

参考

[1] http://man.linuxde.net/ln

ln 软硬链接的更多相关文章

  1. 10.16 ln软硬链接的创建等

    ln make links between files 无参数  创建硬链接 -s 创建软连接 ln option 源文件 目标文件 #相反的: tar 目标文件 源文件 [root@wen test ...

  2. linux命令系列-ln(软硬链接)

    linux命令 ln命令可以生成软链接和硬链接,也可叫做符号链接和实体链接. 有兴趣深入理解的可以查阅相关文档,一般的读者只需记住以下几点即可: .不管是软链接还是硬链接都不会额外增加磁盘空间(虽然实 ...

  3. 软硬链接、文件删除原理、linux中的三种时间、chkconfig优化

    第1章 软硬链接 1.1 硬链接 1.1.1 含义 多个文件拥有相同的inode号码 硬链接即文件的多个入口 1.1.2 作用 防止你误删除文件 1.1.3 如何创建硬链接 ln 命令,前面是源文件  ...

  4. linux文件属性软硬链接知识

    链接的概念 在linux系统中,链接可分为两种:一种为硬链接,另一种为软链接或符号链接.在默认不带参数的情况下,执行ln命令创建的链接是硬链接. 如果使用ln  -s创建链接则为软链接,前面文件类型为 ...

  5. 文件的软硬链接& 文件编辑vi和vim

    目录 文件的软硬链接 1.软链接 2.硬链接 文件编辑vi和vim 须先安装vim命令的软件包yum install -y vim 三种模式: 1.普通模式 2.编辑模式 3.末行模式 文件的软硬链接 ...

  6. 004--linux命令tar 软硬链接

    一.tar命令介绍: -c:创建一个新的tar文件 -t:列出tar文件中目录的内容 -x:从tar文件中抽取文件 -f:指定归档文件或磁带(也可能是软盘)设备(一般都要选) -v:显示所打包的文件的 ...

  7. linux基础文件管理软硬链接

    一.文件系统的基本结构 1.文件和目录被组成一个单根倒置树目录结构 2.文件系统从根目录下开始,用“/”表示 3.根文件系统(rootfs):root filesystem文件名区分大小写 4.以 . ...

  8. Linux 软硬链接区别

    一.“硬链接“和“软链接“ 链接的概念:链接简单说实际上是一种文件共享的方式,是 POSIX 中的概念,主流文件系统都支持链接文件. 链接的作用:可以将链接简单地理解为 Windows 中常见的快捷方 ...

  9. 初始Linux软硬链接

    转载 https://blog.csdn.net/libaineu2004/article/details/85918682 用实践让你明白"软链接"和"硬链接" ...

随机推荐

  1. JAVA 循环语句的练习

    /*for(int i=1;i<=10;i++)   //输出一个三角形 { for (int j=1;j<=i;j++) { System.out.print("*" ...

  2. [深度优先搜索] POJ 3620 Avoid The Lakes

    Avoid The Lakes Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8173   Accepted: 4270 D ...

  3. javascript 手势缩放 旋转 拖动支持:hammer.js

    原文: https://cdn.rawgit.com/hammerjs/hammer.js/master/tests/manual/visual.html /*! Hammer.JS - v2.0.4 ...

  4. D. Game with Strings

    http://codeforces.com/contest/355/problem/D 这道题问了一下学妹,难道说哥已经老了!!! 首先题意理解上有些问题 比如说 a   b    c b   d   ...

  5. ICEM(1)—边界结构网格绘制

    以两个圆为例 1. geometry→ create curve→ 选择圆,随便画两个圆 2. block下选择create block,选择第一项,initial block,设置改为2D Plan ...

  6. Linux下Gcc生成和使用静态库和动态库详解(转)

    一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同( ...

  7. Python中setuptools做什么用的?

    概括 setuptools是 Python Enterprise Application Kit(PEAK)的一个副项目,它 是一组Python的 distutilsde工具的增强工具(适用于 Pyt ...

  8. 开发板远程操作SQL SERVER解决方案

    环境: 开发板:freescale 2.6 armv71,系统只读,唯一可以读写的路径是/tmp/sd(这是一个sd卡).程序放在/tmp/sd/transfer下(下文以运行路径代替),sql语句以 ...

  9. Java泛型学习笔记 - (七)浅析泛型中通配符的使用

    一.基本概念:在学习Java泛型的过程中, 通配符是较难理解的一部分. 主要有以下三类:1. 无边界的通配符(Unbounded Wildcards), 就是<?>, 比如List< ...

  10. multipath tcp experiment

    git clone https://github.com/Neohapsis/mptcp-abuse.git sudo apt-get install python-pip sudo pip inst ...