Linux中包括两种链接:硬链接(hard link)和软链接(soft link),软链接又称为符号链接(symbolic link)
创建命令:
ln -s softlink destfile/directory #建立软连接
ln hardlink destfile #建立硬连接
inode
在Linux系统中,内核为每一个新创建的文件分配一个Inode,每个文件都有一个惟一的inode号,我们可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。文件属性保存在inode里,在访问文件时,inode被复制到内存在,从而实现文件的快速访问。系统是通过inode来定位每一个文件。
硬链接(hard link)
硬链接实际上是一个指针,指向源文件的inode,系统并不为它重新分配inode。硬连接不会建产新的inode,硬连接不管有多少个,都指向的是同一个inode节点,只是新建一个hard link会把结点连接数增加,只要结点的连接数不是0,文件就一直存在,不管你删除的是源文件还是连接的文件。只要有一个存在,文件就存在(其实就是引用计数的概念)。当你修改源文件或者连接文件任何一个的时候,其他的文件都会做同步的修改。
软链接(soft link)
软链接最直观的解释:相当于Windows系统的快捷方式,是一个独立文件(拥有独立的inode,与源文件inode无关),该文件的内容是源文件的路径指针,通过该链接可以访问到源文件。所以删除软链接文件对源文件无影响,但是删除源文件,软链接文件就会找不到要指向的文件(可以类比Windows上快捷方式,你点击快捷方式可以访问某个文件,但是删除快捷方式,对源文件无任何影响)。
区别
1. 软链接和源文件操作权限不一样 inode不一样;硬链接与源文件操作权限完全一致(同一个INODE 引用计数++)。
2. 软链接可以跨文件系统(分区);由于inode的限制以及文件系统的可卸载性,硬连接不容许跨文件系统。
3. 软连接可以对一个不存在的文件名进行连接;硬链接不可以。
4. 软连接可以对目录进行连接;硬链接不可以。
分享到:
相关推荐
总的来说,“Windows下的Unix”意味着通过Cygwin这样的工具,用户可以在Windows系统中实现与Unix/Linux环境相似的功能,这对于开发者和需要跨平台工作的用户来说,是一个强大的解决方案。通过安装和使用Cygwin,用户...
《精通UNIX下C语言编程与项目实践》从实用的角度出发,深入浅出地对UNIX环境下C语言编程进行全面分析和介绍。《精通UNIX下C语言编程与项目实践》共分为6个部分,详尽而细致地介绍了UNIX环境下的编程概念、文件系统...
《精通UNIX下C语言编程》 书源代码 精通UNIX下C语言精通UNIX下C语言精通UNIX下C语言
在Unix平台下进行C语言编程是一项基础且至关重要的技能,特别是在系统级开发和软件工程领域。Unix操作系统以其稳定性、高效性和灵活性而闻名,是许多专业程序员首选的工作环境。本资源旨在帮助开发者深入理解和掌握...
"精通 Unix 下 C 语言编程" Unix 下 C 语言编程是...精通 Unix 下 C 语言编程需要熟练使用 Unix 的各种操作,了解 Unix 编程的基本思想和主要内容,并通过实际编程和操作来提高自己的编程能力和对 Unix 编程的理解。
【正文】 HP-UNIX,全称为Hewlett-Packard UNIX,是由惠普公司开发的一款操作系统,它是基于UNIX System V ...对于IT专业人员来说,深入了解和掌握HP-UNIX将极大地提升他们在Unix环境下的技能水平和职业竞争力。
对Unix系统的简单介绍,本章为UNIX下的C语言开发环境,主要介绍了GCC,GDB和MAKE命令。
unix2dos 操作环境:Microsoft桌面操作系统/dos下操作 使用方法:拖放要转换的文本文件至输入窗口中,选择要转换的方式(DOS2UNIX或UNIX2DOS),点转换即可直接转换 注:支持命令提示符下参数操作 功能: unix...
尽管在Unix操作系统领域内,IRIX可能不如某些版本那样充满活力,但它对稳定性的追求使其在特定应用场合下表现卓越,尤其是与SGI高性能硬件的协同作用下,服务器性能得到了充分展现。 总结而言,Unix从实验室的项目...
《精通Unix下C语言编程与项目实践》是一本旨在帮助读者深入理解和掌握在Unix操作系统环境下进行C语言编程的书籍。源代码压缩包包含了配套的示例程序和练习,旨在通过实际操作来巩固理论知识,提升编程技能。在这个...
精通UNIX下C语言编程及项目实践,精通UNIX下C语言编程及项目实践
在“Laravel开发-laravel-soft-deletes-unix”主题中,我们将深入探讨如何在Laravel应用中使用带Unix时间戳的软删除功能。 首先,软删除的工作原理是:当你调用模型的`delete()`方法时,Laravel不会执行`DELETE` ...
在深入探讨UNIX下C开发的知识点之前,先要理解为何UNIX环境对于C语言开发者如此重要。UNIX系统以其稳定性、高效性和强大的系统编程接口闻名,是许多资深程序员的首选平台。C语言作为UNIX系统的"母语",在UNIX环境中...
9. **编译和链接**:在Unix环境下,C程序通常通过cc或gcc编译器编译,然后通过ld链接器链接到系统库,生成可执行文件。 10. **Makefile**:Unix中的Make工具通过Makefile文件自动化编译过程,简化了项目构建和维护...
linux编程资深专家michael kerrisk在书中详细描述了linux/unix系统编程所涉及的系统调用和库函数,并辅之以全面而清晰的代码示例。《linux/unix系统编程手册(上、下册)》涵盖了逾500个系统调用及库函数,并给出逾200...
在Unix环境下配置JDK与Tomcat是服务器搭建与软件开发中的关键步骤,尤其对于使用Java进行Web应用开发的场景尤为重要。以下将详细解析如何在Unix系统(本例中以FreeBSD为例)中安装并配置JDK与Tomcat,确保环境稳定...
《UNIX编程工具指南》是一本深入讲解UNIX环境下软件开发的书籍,旨在帮助读者轻松掌握UNIX开发平台的相关知识。书中的内容涵盖了从基本的系统调用和C库函数,到更高级的进程管理、I/O操作、终端交互以及进程间通信等...
学习linux之前首先得掌握其前身,unix是linux发展的原型,学好编写linux应用程序才可以更加深入地学习驱动,了解linux内核
在IT领域,文本编码转换是一个常见的任务,...`unix2dos`工具提供了一个方便的方式来处理这种转换,确保文本文件在不同操作系统下都能正确显示和使用。了解和掌握这类工具的使用,能有效提升在多平台环境中的工作效率。
《Unix编程艺术》、《Unix环境高级...通过深入学习,读者不仅可以提高在Unix环境下的编程能力,还能建立起对操作系统和网络通信的深入理解,这对于任何在Unix或类Unix系统(如Linux)上工作的开发者都是宝贵的财富。