博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]linux创建链接文件的两种方法
阅读量:5827 次
发布时间:2019-06-18

本文共 1819 字,大约阅读时间需要 6 分钟。

转自 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

转载地址:http://wrodx.baihongyu.com/

你可能感兴趣的文章
Linux 目录结构及内容详解
查看>>
OCP读书笔记(24) - 题库(ExamD)
查看>>
.net excel利用NPOI导入oracle
查看>>
$_SERVER['SCRIPT_FLENAME']与__FILE__
查看>>
hive基本操作与应用
查看>>
html5纲要,细谈HTML 5新增的元素
查看>>
Android应用集成支付宝接口的简化
查看>>
[分享]Ubuntu12.04安装基础教程(图文)
查看>>
django 目录结构修改
查看>>
win8 关闭防火墙
查看>>
CSS——(2)与标准流盒模型
查看>>
C#中的Marshal
查看>>
linux命令:ls
查看>>
Using RequireJS in AngularJS Applications
查看>>
hdu 2444(二分图最大匹配)
查看>>
【SAP HANA】关于SAP HANA中带层次结构的计算视图Cacultation View创建、激活状况下在系统中生成对象的研究...
查看>>
DevOps 前世今生 | mPaaS 线上直播 CodeHub #1 回顾
查看>>
iOS 解决UITabelView刷新闪动
查看>>
CentOS 7 装vim遇到的问题和解决方法
查看>>
JavaScript基础教程1-20160612
查看>>