什么是Linux软链接和Linux硬链接

Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为软链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

一、[硬链接]-->指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户 就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和 其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

语法:ln 【源文件】 【硬连接文件】

[root@CentOS-study pc]# touch test1
[root@CentOS-study pc]# ll
total 0
-rw-r--r-- 1 root root 0 Dec 10 00:34 test1
[root@CentOS-study pc]# ln test1 test2
[root@CentOS-study pc]# ll
total 0
-rw-r--r-- 2 root root 0 Dec 10 00:34 test1
-rw-r--r-- 2 root root 0 Dec 10 00:34 test2
[root@CentOS-study pc]#

如果删除上面的test1,那么test2是会继续存在的,并且数据也会保留

[root@CentOS-study pc]# rm test1
rm: remove regular empty file `test1'? y
[root@CentOS-study pc]# ll
total 0
-rw-r--r-- 1 root root 0 Dec 10 00:34 test2

硬连接总结:

(1)硬链接的inode相同

(2)只能对文件创建,不能应用于目录

(3)不能跨分区

二、软链接 

  相当于windows中的快捷方式,由于软连接所创建的文件为一个独立的新的文件,所以会占用掉indoe与block

系统有个/root/crontab,它是/etc/crontab的软连接,如果删掉源文件/root/crontab,那么/etc/crontab这个文件的数据也不能查看了,就好像windows里面的桌面快捷方 式,源文件被删除了,快捷方式也失效了。

语法:ln -s  【源文件或目录】  【软件链名字】

范列:

[root@CentOS-study pc]# ll
total 0
-rw-r--r-- 1 root root 0 Dec 10 00:34 test2
[root@CentOS-study pc]# ln -s test2 test3
[root@CentOS-study pc]# ll
total 0
-rw-r--r-- 1 root root 0 Dec 10 00:34 test2
lrwxrwxrwx 1 root root 5 Dec 10 00:42 test3 -> test2
[root@CentOS-study pc]#

  如果我删除源文件,那么软连接文件也将无法查看里面的数据,并且查看软连接的时候,它会一直闪。  

软连接总结:

(1)可以应用于目录

(2)可以跨文件系统

(3)不会增加被链接文件的链接次数

(4)大小为指定的绝对路径所包含的字符总数

(5)有自己的inode号

(6)权限无关紧要

三、总结 

以上就是本文的全部内容,希望对大家的学习有所帮助。

(0)

相关推荐

  • Linux 硬链接和软链接详细介绍

    Linux中的硬链接和软链接 软链接和硬链接 命令ln ln是创建链接的命令: 创建硬链接:ln file link 创建软链接:ln -s file link 硬链接 硬链接(hard link)是Unix系统最早的创建链接的方式. 默认情况下每个文件都有一个硬链接,创建硬链接时,实际上是创建了附加的入口,当且仅当指向文件的所有硬链接都被删除之后文件才被真正删除,即数据块被清理. 为一个文件创建硬链接,类似于拷贝一个文件,但是这个新的拷贝和原先的版本是同步更新的. 这是因为Linux文件系统中

  • linux动态链接库使用方法分享

    1.前言 在实际开发过程中,各个模块之间会涉及到一些通用的功能,比如读写文件,查找.排序.为了减少代码的冗余,提高代码的质量,可以将这些通用的部分提取出来,做出公共的模块库.通过动态链接库可以实现多个模块之间共享公共的函数.之前看<程序员的自我修养>中讲到程序的链接和装入过程,这些玩意都是底层的,对于理解程序的编译过程有好处.http://www.ibm.com/developerworks/cn/linux/l-dynlink/博文介绍了程序的链接和装入过程.本文重点在于应用,如何编写和使用

  • 解决Linux程序编译链接动态库版本的相关问题

    前言 不同版本的动态库可能会不兼容,如果程序在编译时指定动态库是某个低版本,运行是用的一个高版本,可能会导致无法运行.Linux上对动态库的命名采用libxxx.so.a.b.c的格式,其中a代表大版本号,b代表小版本号,c代表更小的版本号,我们以Linux自带的cp程序为例,通过ldd查看其依赖的动态库 $ ldd /bin/cp linux-vdso.so.1 => (0x00007ffff59df000) libselinux.so.1 => /lib64/libselinux.so.1

  • Python在Windows和在Linux下调用动态链接库的教程

    Linux系统下调用动态库(.so) 1.linuxany.c代码如下: #include "stdio.h" void display(char* msg){ printf("%s\n",msg); } int add(int a,int b){ return a+b; } 2.编译c代码,最后生成Python可执行的.so文件 (1)gcc -c linuxany.c,将生成一个linuxany.o文件 (2)gcc -shared linuxany.c -o

  • Linux链接命令的实例详解

    Linux链接命令的实例详解 一 语法 ln -s [源文件] [目标文件] 命令英文含义:link 功能描述:生成链接文件 选项:-s 创建软链接 二 硬链接特征 原文件和硬链接文件删除其中任何一个都没问题. 三 硬链接实战 [root@localhost ~]# cd test [root@localhost test]# ls bcd [root@localhost test]# ln bcd abc.hard [root@localhost test]# ll total 0 -rw-r

  • linux删除无效链接文件脚本分享

    Linux终端下执行,用于删除无效的链接文件. 复制代码 代码如下: #!/bin/sh usage(){    echo "RemoveBroken 0.1, a shell script to remove broken link files."    echo "License: MIT, (c) chenzhiqiang"    echo "Usage:"    echo "  $0 --help           print

  • linux链接编译详解

    为什么要包含头文件而不是.c文件 测试代码: 复制代码 代码如下: m.c文件:#include"t.c"int main(){test();return 0;} 编译: 复制代码 代码如下: gcc m.c -o m -Wall In file included from m.c:1:0:t.c: 在函数'test'中:t.c:3:2: 警告: 隐式声明函数'putchar' [-Wimplicit-function-declaration]编译通过,只有一个警告,生成了可执行文件m

  • 什么是Linux软链接和Linux硬链接

    Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为软链接(Symbolic Link).默认情况下,ln命令产生硬链接. 一.[硬链接]-->指通过索引节点来进行连接.在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index).在Linux中,多个文件名指向同一索引节点是存在的.一般这种连接就是硬连接.硬连接的作用是允许一个文件拥有多个有效路径名,这样用户 就可以建立硬连接到重要文件,以防止"误删&qu

  • Linux硬链接与软链接原理及用法解析

    在linux系统中有种文件是链接文件,可以为解决文件的共享使用.链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link). 硬链接概念 硬链接(hard link, 也称链接)就是一个文件的一个或多个文件名 硬链接是指通过索引节点来进行链接.在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号号(Inode Index)或者Inode,它是文件或者目录在一个文件系统中的唯一

  • 区分Linux硬链接与软链接

    在Linux中,连接文件有两种,一种类似于Windows的快捷方式,可以让你快速地链接到目标文件(或目录),这种称为软链接(soft link),也叫作符号链接(symbolic link):另一种则是通过文件系统的 inode 连接来产生新文件名,而不是产生新文件.这种称为硬链接(hard link),也叫作实体链接. 软链接与硬链接是两种完全不一样的东西. 1.硬链接(hard link) 1.1简介 一般情况下,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名.但是,

  • 详解linux软连接和硬链接

    本篇文章详细介绍了linux软连接和硬链接,废话不多说,接着往下看把. 一 链接文件 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [软连接] 另外一种连接称之为符号连接(Symbolic Link),也叫软连接.软链接文件有类似于Windows的快捷方式.它实际上是一个特殊的文件.在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息. 链接文件甚至可以链接不存在的文件,这就产

  • 解析Linux下C++编译和链接

    编译原理 将如下最简单的C++程序(main.cpp)编译成可执行目标程序,实际上可以分为四个步骤:预处理.编译.汇编.链接,可以通过 g++ main.cpp –v看到详细的过程,不过现在编译器已经把预处理和编译过程合并. 预处理:g++ -E main.cpp -o main.ii,-E表示只进行预处理.预处理主要是处理各种宏展开:添加行号和文件标识符,为编译器产生调试信息提供便利:删除注释:保留编译器用到的编译器指令等. 编译:g++ -S main.ii –o main.s,-S表示只编

  • linux学习笔记 linux目录架构

    linux目录架构   / 根目录   /bin 常用的命令 binary file 的目錄   /boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内   /boot/grub/menu.lst GRUB设置   /boot/vmlinuz 内核   /boot/initrd 核心解壓縮所需 RAM Disk   /dev 系统周边设备   /etc 系统相关设定文件   /etc/DIR_COLORS 设定颜色   /etc/HOSTNAME 设定用户的节点名   /et

  • linux操作系统原理 linux系统基础教程

    本篇文章系统的给大家讲述linux操作系统原理,这是一篇非常好的linux系统基础教程,我们总结了相关的全部精选内容,一起来学习下. linux操作系统原理文字版 一.计算机经历的四个时代 1.第一代: 真空管计算机,输入和输出:穿孔卡片,对计算机操作起来非常不便,做一件事可能需要十几个人去共同去完成,年份大概是:1945-1955.而且耗电量特别大,如果那个时候你家里有台计算机的话,可能你一开计算机你家的电灯泡亮度就会变暗,哈哈~ 2.第二代: 晶体管计算机,批处理(串行模式运行)系统出现.相

  • LVS(Linux Virtual Server)Linux 虚拟服务器介绍及配置(负载均衡系统)

    一,简介 LVS(Linux Virtual Server) 是Unix-like系统中的一个虚拟服务器,是国内贡献给开源组织的一个最优秀的项目之一.LVS在Unix-like系统中 是作为一个前端(Director)存在的,又称为调度器,它本身不提供任何的服务,只是将通过互联网进来的请求接受后再转发给后台运行的真正的 服务器(RealServer)进行处理,然后响应给客户端. LVS有两个重要的组件:一个是IPVS,一个是IPVSADM.ipvs是LVS的核心组件,它本身只是一个框架,类似于i

  • Linux初学(CnetOS7 Linux)之切换命令模式和图形模式的方法

    通常我们也称命令模式为终端机接口,terminal 或 console . Linux 预设的情况下会提供六个 Terminal 来让使用者登入, 切换的方式为使用:[Ctrl] + [Alt] + [F1]~[F6]的组合按钮. 那这六个终端接口如何命名呢,系统会将[F1] ~ [F6]命名为 tty1 ~ tty6 的操作接口环境. 也就是说,当你按下 [crtl] + [Alt] + [F1]这三个组合按钮时 , 就会进入到 tty1 的 terminal 界面中了. 回到刚刚的图形界面下

随机推荐