[转]linux创建链接文件的两种方法

简介:

转自 http://topic.csdn.net/u/20120930/11/3d9e5a0d-6dad-4dee-8a9d-6ad50f52f69e.html?r=79806698

 

一、 链接的分类:
链接分为软链接和硬链接:
  1> 软链接:
软链接又叫符号链接,这类文件包含了另外一个文件的路径。可以连接任意文件和目录,也可以连接不同的文件系统文件,也可以连接不存在的文件,还可以循环连接自己。
  2> 硬链接是一个已存在文件的另一个名字。注意:
  1)只能在同一个文件系统中的文件才能创建硬链接;
2)不允许给目录创建硬链接。
二、在shell界面使用ln命令创建链接
  当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:
  ln –s /bin/less /usr/local/bin/less,其中-s 是代号(symbolic)的意思。
如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls –l命令去察看,就可以看到显示的link的路径了。

这里有两点要注意:
1>ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;
2>ln的链接又软链接和硬链接两种:
1)软链接创建指令:ln –s filename link_filename,意为创建一个名为“link_filename”指向 “filename”的链接文件,它只会在你选定的位置上生成一 个文件的镜像,类似windows下的快键方式。
2)硬链接创建指令:ln filename link_filename,没有参数-s, 它会在 你选定的位置上生成一个和源文件大小相同的文件。

无论是软链接还是硬链接,文件都保持同步变化。



指令参数详细说明:
  -f : 链结时先将与 dist 同档名的档案删除
  -d : 允许系统管理者硬链结自己的目录
  -i : 在删除与 dist 同档名的档案时先进行询问
  -n : 在进行软连结时,将 dist 视为一般的档案
  -s : 进行软链结(symbolic link)
  -v : 在连结之前显示其档名
  -b : 将在链结时会被覆写或删除的档案进行备份
  -S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
  -V METHOD : 指定备份的方式
  --help : 显示辅助说明
  --version : 显示版本


三、 C程序中使用link函数创建
link函数申明如下:
#include <unistd.h>
int link (const char * oldpath, const char * newpath);
函数说明:link()以参数newpath 指定的名称来建立一个新的链接(硬链接)到参数oldpath 所指定的已存在文件. 如果参数newpath 指定的名称为一已存在的文件则不会建立链接。
返回值:成功则返回0, 失败返回-1, 错误原因存于errno。
错误代码:
 1、EXDEV 参数oldpath 与newpath 不是建立在同一文件系统.
 2、EPERM 参数oldpath 与newpath 所指的文件系统不支持硬连接
 3、EROFS 文件存在于只读文件系统内
 4、EFAULT 参数oldpath 或newpath 指针超出可存取内存空间.
 5、ENAMETOLLONG 参数oldpath 或newpath 太长
 6、ENOMEM 核心内存不足
 7、EEXIST 参数newpath 所指的文件名已存在.
 8、EMLINK 参数oldpath 所指的文件已达最大连接数目.
 9、ELOOP 参数pathname 有过多符号连接问题
 10、ENOSPC 文件系统的剩余空间不足.
 11、EIO I/O 存取错误.
 
范例:
 /* 建立/etc/passwd 的硬连接为pass */
 #include <unistd.h>
 main()
 {
  link("/etc/passwd", "pass");
 } 


本文转自    拖鞋崽      51CTO博客,原文链接:http://blog.51cto.com/1992mrwang/1011814

相关文章
|
1月前
|
Ubuntu 物联网 Linux
从零安装一个Linux操作系统几种方法,以Ubuntu18.04为例
一切就绪后,我们就可以安装操作系统了。当系统通过优盘引导起来之后,我们就可以看到跟虚拟机中一样的安装向导了。之后,大家按照虚拟机中的顺序安装即可。 好了,今天主要介绍了Ubuntu Server版操作系统的安装过程,关于如何使用该操作系统,及操作系统更深层的原理,还请关注本号及相关圈子。
|
4月前
|
Linux 开发工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
|
23天前
|
缓存 监控 Linux
Linux系统清理缓存(buff/cache)的有效方法。
总结而言,在大多数情形下你不必担心Linux中buffer与cache占用过多内存在影响到其他程序运行;因为当程序请求更多内存在没有足够可用资源时,Linux会自行调整其占有量。只有当你明确知道当前环境与需求并希望立即回收这部分资源给即将运行重负载任务之前才考虑上述方法去主动干预。
333 10
|
2月前
|
存储 数据管理 Linux
区分Linux中.tar文件与.tar.gz文件的不同。
总之,".tar"文件提供了一种方便的文件整理方式,其归档但不压缩的特点适用于快速打包和解压,而".tar.gz"文件通过额外的压缩步骤,尽管处理时间更长,但可以减小文件尺寸,更适合于需要节约存储空间或进行文件传输的场景。用户在选择时应根据具体需求,考虑两种格式各自的优劣。
310 13
|
1月前
|
Ubuntu Linux 图形学
推广与体验Ubuntu Linux的便捷方法
如果你的朋友或家人对尝试Linux感兴趣,但希望在安装之前先体验一下,你可以分享以下链接给他们:Ubuntu在线导览。通过这个链接,他们可以在任何地方轻松体验Ubuntu,无需安装即可深入了解这个流行的操作系统。
|
1月前
|
XML 缓存 Linux
在Linux环境下解决Visual Studio Code字体显示异常和字体替换方法。
解决Linux下VS Code字体显示异常,需要对Linux字体渲染机制有所理解,并对VS Code的配置选项进行合理设置。替换字体时则要通过系统字体配置或VS Code设置来完成。通过上述方法,可以有效地解决字体显示问题,从而提升代码编辑的视觉体验。
156 0
|
3月前
|
安全 Linux
Linux赋予文件000权限的恢复技巧
以上这些步骤就像是打开一扇锁住的门,步骤看似简单,但是背后却有着严格的逻辑和规则。切记,在任何时候,变更文件权限都要考虑安全性,不要无谓地放宽权限,那样可能
117 16
|
3月前
|
存储 Linux 数据处理
深入剖析Linux中一切即文件的哲学和重定向的机制
在计算机的奇妙世界中,Linux的这套哲学和机制减少了不同类型资源的处理方式,简化了抽象的概念,并蕴藏着强大的灵活性。就像变戏法一样,轻轻松松地在文件、程序与设备之间转换数据流,标准输入、输出、错误流就在指尖舞动,程序的交互和数据处理因此变得既高效又富有乐趣。
52 4
|
4月前
|
Linux
【Linux】 Linux文件I/O常见操作技巧
以上就是Linux文件I/O操作的一些技巧,接纳它们,让它们成为你在Linux世界中的得力伙伴,工作会变得轻松许多。不过记住,技巧的运用也需要根据实际情况灵活掌握,毕竟,最适合的才是最好的。
118 28

热门文章

最新文章