Linux 硬链接和软链接详细介绍
Linux中的硬链接和软链接
软链接和硬链接
命令ln
ln是创建链接的命令:
创建硬链接:ln file link
创建软链接:ln -s file link
硬链接
硬链接(hard link)是Unix系统最早的创建链接的方式。
默认情况下每个文件都有一个硬链接,创建硬链接时,实际上是创建了附加的入口,当且仅当指向文件的所有硬链接都被删除之后文件才被真正删除,即数据块被清理。
为一个文件创建硬链接,类似于拷贝一个文件,但是这个新的拷贝和原先的版本是同步更新的。
这是因为Linux文件系统中所有文件都会分配一个编号,称为索引节点号(Inode Index),创建硬链接,inode是同一个号,所以可以同步更新。
硬链接的两个限制:
1.硬链接不能指向自身文件系统外的文件,即不能跨硬盘分区(软链接可以)。
2.硬链接不能指向目录。
软链接
软链接(software link),也称为符号链接(symbolic link),软链接可以类比Windows上的快捷方式。
删除软链接时不会影响指向文件;如果删除了文件没有删除软链接,链接会存在但是什么也不指向,即坏掉了。
总结
硬链接:拷贝+同步
软链接:快捷方式
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
什么是Linux软链接和Linux硬链接
Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为软链接(Symbolic Link).默认情况下,ln命令产生硬链接. 一.[硬链接]-->指通过索引节点来进行连接.在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index).在Linux中,多个文件名指向同一索引节点是存在的.一般这种连接就是硬连接.硬连接的作用是允许一个文件拥有多个有效路径名,这样用户 就可以建立硬连接到重要文件,以防止"误删&qu
-
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
-
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终端下执行,用于删除无效的链接文件. 复制代码 代码如下: #!/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程序编译链接动态库版本的相关问题
前言 不同版本的动态库可能会不兼容,如果程序在编译时指定动态库是某个低版本,运行是用的一个高版本,可能会导致无法运行.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
-
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动态链接库使用方法分享
1.前言 在实际开发过程中,各个模块之间会涉及到一些通用的功能,比如读写文件,查找.排序.为了减少代码的冗余,提高代码的质量,可以将这些通用的部分提取出来,做出公共的模块库.通过动态链接库可以实现多个模块之间共享公共的函数.之前看<程序员的自我修养>中讲到程序的链接和装入过程,这些玩意都是底层的,对于理解程序的编译过程有好处.http://www.ibm.com/developerworks/cn/linux/l-dynlink/博文介绍了程序的链接和装入过程.本文重点在于应用,如何编写和使用
-
Linux 硬链接和软链接详细介绍
Linux中的硬链接和软链接 软链接和硬链接 命令ln ln是创建链接的命令: 创建硬链接:ln file link 创建软链接:ln -s file link 硬链接 硬链接(hard link)是Unix系统最早的创建链接的方式. 默认情况下每个文件都有一个硬链接,创建硬链接时,实际上是创建了附加的入口,当且仅当指向文件的所有硬链接都被删除之后文件才被真正删除,即数据块被清理. 为一个文件创建硬链接,类似于拷贝一个文件,但是这个新的拷贝和原先的版本是同步更新的. 这是因为Linux文件系统中
-
区分Linux硬链接与软链接
在Linux中,连接文件有两种,一种类似于Windows的快捷方式,可以让你快速地链接到目标文件(或目录),这种称为软链接(soft link),也叫作符号链接(symbolic link):另一种则是通过文件系统的 inode 连接来产生新文件名,而不是产生新文件.这种称为硬链接(hard link),也叫作实体链接. 软链接与硬链接是两种完全不一样的东西. 1.硬链接(hard link) 1.1简介 一般情况下,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名.但是,
-
Linux硬链接与软链接原理及用法解析
在linux系统中有种文件是链接文件,可以为解决文件的共享使用.链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link). 硬链接概念 硬链接(hard link, 也称链接)就是一个文件的一个或多个文件名 硬链接是指通过索引节点来进行链接.在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号号(Inode Index)或者Inode,它是文件或者目录在一个文件系统中的唯一
-
Linux系统下netstat命令详细介绍
目录 一.介绍 二.输出信息描述 三.netstat常见参数 四.netstat网络状态详解 Linux的相关keepalive参数 五.常用netstat相关命令 一.介绍 Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实际的网络连接以及每一个网络接口设备的状态信息. Netstat用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况. 二.输出信息描述 执行netstat后输出如下: [root@sy-s
-
linux命令scp和sftp详细介绍
linux命令scp和sftp详细介绍 1. 使用 scp 命令传输文件: 使用 scp 命令可以用来通过安全.加密的连接在不同主机之间传输文件. (1)把本地文件传输到远程主机: 一般语法:scp [本地文件] [用户名@远程主机IP地址:/目标文件夹] (2) 把远程文件传输到本地主机: 一般语法:scp [用户名@远程主机IP地址:/源文件] [本地目录] Note: scp后加 -r 选项可以传输文件夹. 2.使用sftp命令建立FTP会话: 使用sftp命令可以用来打开安全互动的.加密
-
Linux内存管理和寻址详细介绍
目录 1.概念 内存管理模式 地址类型划分 说明: 2.页式管理 x86架构32位cpu x86架构 64位cpu 3.地址划分 4. 调试 结语 1.概念 内存管理模式 段式:内存分为了多段,每段都是连续的内存,不同的段对应不用的用途.每个段的大小都不是统一的,会导致内存碎片和内存交换效率低的问题. 页式:内存划分为多个内存页进行管理,如在 Linux 系统中,每一页的大小为 4KB.由于分了页后,就不会产生细小的内存碎片.但是仍然也存在内存碎片问题. 段页式:段式和页式结合. 地址类型划分
-
Linux shell脚本基础学习详细介绍(完整版)第1/2页
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Linux 脚本编写基础 ◆1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序.当编辑好脚本时,如果要执行该脚本,还必须使其可执行.要使脚本可执行:编译
-
链接库动态链接库详细介绍
windows中,链接库分为两种类型:静态链接库.lib和动态链接库.dll.其中动态链接库在被使用的时候,通常还提供一个.lib,称为引入库,它主要提供被Dll导出的函数和符号名称,使得链接的时候能够找到dll中对应的函数映射. 静态链接库和动态链接库的作用相似,都是提供给其他程序进行调用的资源.其中,动态链接库的调用方法分隐式调用(静态导入调用)和显示调用(动态导入调用). 编译环境: Microsoft Visual Stdio 2010 -------------------------
-
Linux 重命名命令自制详细介绍
Linux 重命名命令 相比于Windows上的ren命名,Linux还真的是没有一个特定的重命名的命令.(虽然可以间接的使用mv来实现).下面我就来自己写一个简单的重命名命令. 准备工作 操作系统: Linux内核的系统都可以 Shell:我用的系统默认的bash,(其实这个无所谓了) 基础: 了解关于shell脚本的基本的语法即可. 代码实现 #!/bin/bash #filename: rename.sh #description: rename file or directory by
随机推荐
- 又一个PHP实现的冒泡排序算法分享
- sqlserver分页的两种写法分别介绍
- SQL 注入式攻击的本质
- java编程之单元测试(Junit)实例分析(附实例源码)
- Java线程代码的实现方法
- spring与mybatis三种整合方法
- JavaScript计时器用法分析【setTimeout和clearTimeout】
- JavaScript function函数种类详解
- 在MySQL中增添新用户权限的方法
- Mysql5.5 InnoDB存储引擎配置和优化
- mySQL count多个表的数据实例详解
- Lua中table的遍历详解
- Java swing仿酷狗音乐播放器
- 跟老齐学Python之私有函数和专有方法
- Nginx中共享session会话配置方法例子
- C#如何防止程序多次运行的技巧
- java中hasNextInt判断后无限循环输出else项的解决方法
- C语言实现查询自动售货机中的商品价格【实例分享】
- React Native中NavigatorIOS组件的简单使用详解
- 解析Vue.js中的组件