博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux文件目录连接
阅读量:6333 次
发布时间:2019-06-22

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

 

linux系统下提供ln指令来进行文件链接。文件链接主要分为硬链接和软链接。

硬链接:由于linux下的文件是通过索引节点(Inode)来识别文件,硬链接可以认为是一个指针,指向文件索引节点的指针,系统并不为它重新分配inode。每添加一个一个硬链接,文件的链接数就加1。

可以用:ln命令来建立硬链接。语法:

  1. ln [options] existingfile newfile  
  2. ln[options] existingfile-list directory  

 

 

软链接(符号链接):

软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。

  1. $ln –s file1 file1soft

程序执行:

link()函数和symlink()

 unlink("/opt/ipnc");

 sprintf(cSrc,"/opt/ipnc%d",iDirNum);
 sprintf(cDst,"/opt/ipnc");
 symlink(cSrc, cDst);

原型:

#include <unistd.h>
int 
symlink(
const 
char 
*
oldpath
, 
const 
char 
*
newpath);
ssize_t 
readlink(
const 
char 
*
path
, 
char 
*
buf
, 
size_t 
bufsiz);

说明:
symlink() 函数创建称为 newpath 的符号链接,该符号链接指向称为 oldpath 的文件。符号链接可以跨越文件系统,并且不会对执行对 oldpath 是否存在的任何检查。一旦创建符号链接,就可以用 readlink() 函数来读取它的内容,以查看它指向何处。
readlink() 函数允许我们确定为 path 的符号链接指向什么内容。路径名的第一个 bufsiz 字节复制到用户提供的缓冲区 buf。当路径名复制到 buf  时,它没有按照我们期望的那样以 NULL 终止,因此必须添加自己的终止标记。
示例代码:

#include <unistd.h>
#include <stdio.h>
int 
main()
{
    
    
char 
buf
[
128
];
    
if (
symlink (
"/home/Programming/system/symlink.c"
, 
"/home/groad/symlink_test.c"
== 
-
1)
        
perror (
"symlink");
    
readlink (
"/home/groad/symlink_test.c"
, 
buf
, 
127);
    
buf
[
128
] 
= 
'\0';
    
printf (
"%s
\n
"
, 
buf);
    
return (
0);
}

运行与输出:

 ./symlink 
/home/Programming/system/symlink.c

之间的区别:

硬链接就是备份,软连接就是快捷方式

http://blog.csdn.net/hairetz/article/details/4168296

http://blog.csdn.net/stilling2006/article/category/746887

转载于:https://www.cnblogs.com/pengkunfan/p/3733961.html

你可能感兴趣的文章
the word of jews
查看>>
linux必知必会
查看>>
迭代输出
查看>>
RabbitMQ学习总结(6)——消息的路由分发机制详解
查看>>
DB_oracle11g服务器调整内存后报ORA-00845
查看>>
Git使用详细教程
查看>>
Python字符串格式化
查看>>
mysql执行计划初步解读1
查看>>
Spring学习总结(2)——Spring的常用注解
查看>>
我已不是我--素养训练课
查看>>
MyBatis学习总结(9)——使用MyBatis Generator自动创建代码
查看>>
namenode ha by zookeeper
查看>>
Java 使用 Redis
查看>>
MyBatis学习总结(五)——实现关联表查询
查看>>
大型网站技术架构(一)大型网站架构演化
查看>>
Catalan数与出栈顺序个数,Java编程模拟
查看>>
Linux的shell脚本的语句,函数,检测服务,启动脚本的练习
查看>>
Mysql学习总结(3)——MySql语句大全:创建、授权、查询、修改等
查看>>
Java注释模板
查看>>
[UOJ86]mx的组合数——NTT+数位DP+原根与指标+卢卡斯定理
查看>>