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 终止,因此必须添加自己的终止标记。

示例代码:

)
        );

);
}

运行与输出:

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

之间的区别:

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

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

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

linux文件目录连接的更多相关文章

  1. 你一定要知道的关于Linux文件目录操作的12个常用命令

    写在前面: 1,<你一定要知道的关于Linux文件目录操作的12个常用命令>是楼主收集的关于Linux文件目录操作最常用的命令,包括文件或目录的新建.拷贝.移动.删除.查看等,是开发人员操 ...

  2. Linux文件目录管理

    Linux文件目录管理 文件的路径 路径: . 表示当此层目录 .. 表示上一层目录 - 代表前一个工作目录 ~ 代表"目前用户身份"所在的文件夹 ~account 代表accou ...

  3. linux文件目录详细介绍

    linux文件目录 目录 /bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里 /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目录,是用户主目录的基点 ...

  4. linux文件目录权限详解(20170101)

    linux目录权限与文件权限是不同的,二者要相互配合,这是基础. 比如要读文件:目录至少要有x,文件至少要有r. 要写文件:目录至少要有x,文件至少要有rw. 要执行文件:目录至少要有x,文件至少要有 ...

  5. 查linux端口连接情况用命令netstat

    查linux端口连接情况用命令netstat netstat -apn |grep cdnbest 或netstat –apn | grep 3320

  6. Linux Vsftpd 连接超时解决方法

    Linux Vsftpd 连接超时解决方法 2013-11-13 10:58:34|  分类: 默认分类|举报|字号 订阅     解决方法(http://www.lingdus.com/thread ...

  7. 设置windows网络连接别名和linux网络连接别名

    windows网络连接别名 C:\Windows\System32\drivers\etc目录下的hosts文件中添加 127.0.0.1 localhost 192.168.1.100 proxy. ...

  8. Linux文件目录结构详解

    整理自<鸟哥的私房菜> 对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于 ...

  9. Delphi能通过SSH登录Linux,连接MYSQL取数么?像Navicat一样

    百度随时就能搜,你就懒得搜下.http://tieba.baidu.com/p/671327617 Ssh tunnel通常能实现3种功能1) 加密网络传输2) 绕过防火墙3) 让位于广域网的机器连接 ...

随机推荐

  1. npm run build:h5 报错

    1.报错信息 (1)asset size limit: The following asset(s) exceed the recommended size limit (244 KiB). (2)e ...

  2. Servlet 过滤器 Filter

    过滤器是一个实现了 javax.servlet.Filter 接口的 Java 类.javax.servlet.Filter 接口定义了三个方法: 下面是对所有编码过滤器 package filter ...

  3. 深层神经网络框架的python实现

    概述 本文demo非常适合入门AI与深度学习的同学,从最基础的知识讲起,只要有一点点的高等数学.统计学.矩阵的相关知识,相信大家完全可以看明白.程序的编写不借助任何第三方的深度学习库,从最底层写起. ...

  4. javax.naming.NoInitialContextException: Need to specify class name in environment or system property

    javax.naming.NoInitialContextException: Need to specify class name in environment or system property ...

  5. AI:人工智能搜索策略

    人工智能搜索策略:

  6. STS IDE 个性化修改

    JDK: Eclipse或MyEclipse文件系统不同步的解决方法 STS汉化: 1.解压STS中的language文件夹 以我的安装目录为例,我的STS的安装在D:盘下.将解压后的“languag ...

  7. python --循环对象

    转自:http://www.cnblogs.com/vamei/archive/2012/07/09/2582499.html 这一讲的主要目的是为了大家在读Python程序的时候对循环对象有一个基本 ...

  8. 类型转换运算符、*运算符重载、->运算符重载、operator new 和 operator delete

    一.类型转换运算符 必须是成员函数,不能是友元函数 没有参数 不能指定返回类型 函数原型:operator 类型名();  C++ Code  1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  9. [Unity3D]Unity+Android交互教程——让手机&quot;动&quot;起来

    想要用Unity实现一个二维码扫描的功能,然后网上找插件,找到一个貌似叫EasyCodeScanner,但下载下来用用.真不好使,一导入执行就报错.调好错了再执行发现点button没反应.重复试了几遍 ...

  10. python 多线程爬虫 实例

    多进程 Multiprocessing 模块 Process 类用来描述一个进程对象.创建子进程的时候,只需要传入一个执行函数和函数的参数即可完成 Process 示例的创建. star() 方法启动 ...