精华内容
下载资源
问答
  • 今天我们来学习特殊一点的文件"链接文件",这一章节会告诉大家什么是链接文件,以及链接文件有几种类型,有什么区别,在什么地方使用到。链接文件之前在第一章就有提到过,查看一个文件的详细信息会有一个"drwxr-xr-...

    引言:上期回顾(想要学习的童鞋可以点击看看)

        前几章我们所说的命令都是针对文件和文件夹,和一些常用操作。今天我们来学习特殊一点的文件"链接文件",这一章节会告诉大家什么是链接文件,以及链接文件有几种类型,有什么区别,在什么地方使用到。链接文件之前在第一章就有提到过,查看一个文件的详细信息会有一个"drwxr-xr-x"之类信息,第1个字母为"l"的为链接文件,这个是链接文件的特点之一,赶紧来学习链接文件吧!

    一、链接文件分类

        在Linux中链接文件分为"软链接文件"、"硬链接文件"

        那怎么创建链接文件呢?使用ln命令来创建链接文件,如果加上-s的选项则表示创建软链接文件,不加则创建硬链接文件。ln原英文含义是link,链接的意思很好理解。在这里我在/tmp目录下创建了两个链接文件,issue.bost为软链接,issue.herd为硬链接文件。大家可以创建试试,然后显示出详细信息查看有什么区别。

        

    展开全文
  • Linux系统中的链接文件

    千次阅读 多人点赞 2019-06-06 20:14:09
    日志文件系统ext xfs里 1.节点区域 记录的都是文件属性,ls -l file ,文件的元数据inode tables 2.数据区域 放的时cat file看到的一切,数据块 cat 找的是数据区域 一个文件对应一个节点号,一个节点号对应一个...

    日志文件系统ext xfs里
    1.节点区域 记录的都是文件属性,ls -l file可以看到的内容 ,文件的元数据inode tables
    2.数据区域 放的是cat file看到的一切,数据块
    cat 找的是数据区域
    一个文件对应一个节点号,一个节点号对应一个数据区域

    硬链接 :一个节点号对应多个数据区域,节点区域不够,只复制数据区域而不复制节点区域。
    copy是复制节点区域和数据区域 ln
    软链接:多个节点号对应一个数据区域,相当于windows的快捷方式
    ln -s +绝对路径 s=soft ,满权限是因为不能让链接影响真实文件 ->的管理。

    ls -i 可以看到节点号

    删除:删除的是节点号,节点号找不到数据区域,
    ln /mnt/ping /mnt/zhang 生成硬链接,ls -i两个文件的节点号一致,前面是存在的,后面是新建立的。
    ln -s /mnt/ping /mnt/westos 生成软链接,ls -l可看
    rm -fr /mnt/ping 软链接文件westos失效打不开
    touch /mnt/ping 软链接又恢复了

    ext4文件系统

    • Linux 目前使用的是 ext4 文件系统。如果用一张示意图来描述 ext4 文件系统,则可以参考下图。
      在这里插入图片描述
    • ext4 文件系统会把分区主要分为两大部分(暂时不提超级块):小部分用于保存文件的 inode (i 节点)信息;剩余的大部分用于保存 block 信息
    • inode 的默认大小为 128 Byte,用来记录文件的权限(r、w、x)、文件的所有者和属组、文件的大小、文件的状态改变时间(ctime)、文件的最近一次读取时间(atime)、文件的最近一次修改时间(mtime)、文件的数据真正保存的 block 编号。每个文件需要占用一个 inode。大家如果仔细查看,就会发现 inode 中是不记录文件名的,那是因为文件名记录在文件所在目录的 block 中。
    • block 的大小可以是 1KB、2KB、4KB,默认为 4KB。block 用于实际的数据存储,如果一个 block 放不下数据,则可以占用多个 block。例如,有一个 10KB 的文件需要存储,则会占用 3 个 block,虽然最后一个 block 不能占满,但也不能再放入其他文件的数据。这 3 个 block 有可能是连续的,也有可能是分散的。
    • 由此,我们可以知道以下 2 个重要的信息:
      1.每个文件都独自占用一个 inode,文件内容由 inode 的记录来指向;
      2.如果想要读取文件内容,就必须借助目录中记录的文件名找到该文件的 inode,才能成功找到文件内容所在的 block 块;

    Linux系统中的链接文件

    • 在linux系统中有种文件是链接文件,可以为解决文件的共享使用。链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link)。
    • 查看linux系统中哪些是链接文件。
      在这里插入图片描述
    • 上图文件列表中第一列权限位标识第一个字符显示的是文件类型,-为一般文件,d为目录,而l显示的就是链接文件。

    硬链接

    • 硬链接是指通过索引节点来进行链接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(Inode Index)或者Inode,它是文件或者目录在一个文件系统中的唯一标识,文件的实际数据放置在数据区域(data block),它存储着文件重要参数信息,也就是元数据 (metadata),比如创建时间、修改时间、文件大小、属主、归属的用户组、读写权限、数据所在block号等,如下图所示。
      在这里插入图片描述
    • 在Linux系统中,多个文件名指向同一索引节点(Inode)是正常且允许的。一般这种链接就称为硬链接。硬链接的作用之一是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要的文件,以防止“误删”源数据(很多硬件,如netapp存储中的快照功能就应用了这个原理,增加一个快照就多了一个硬链接)。不过硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。之所以文件建立了硬链接就会防止数据误删,是因为文件系统的原理是,只要文件的索引节点还有一个以上的链接(仅删除了该文件的指向),只删除其中一个链接并不影响索引节点本身和其他的链接(数据的实体并未删除),只有当最后一个链接被删除后,此时如果有新数据要存储到磁盘上,被删除的文件的数据块及目录的链接才会被释放,空间被新数据暂用覆盖。

    软链接

    • 软链接(也叫符号链接),类似于windows系统中的快捷方式,与硬链接不同,软链接就是一个普通文件,只是数据块内容有点特殊,文件用户数据块中存放的内容是另一文件的路径名的指向,通过这个方式可以快速定位到软连接所指向的源文件实体。软链接可对文件或目录创建
      软链接作用:
    • 便于文件的管理,比如把一个复杂路径下的文件链接到一个简单路径下方便用户访问。
    • 节省空间解决空间不足问题,某个文件系统空间已经用完了,但是现在必须在该文件系统下创建一个新的目录并存储大量的文件,那么可以把另一个剩余空间较多的文件系统中的目录链接到该文件系统中。
    • 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。

    软连接和硬链接的特点

    软链接:

    • 软链接是存放另一个文件的路径的形式存在。
    • 软链接可以跨文件系统 ,硬链接不可以。
    • 软链接可以对一个不存在的文件名进行链接,硬链接必须要有源文件。
    • 软链接可以对目录进行链接。

    硬链接:

    • 硬链接,以文件副本的形式存在。但不占用实际空间。
    • 不允许给目录创建硬链接。
    • 硬链接只有在同一个文件系统中才能创建。
    • 删除其中一个硬链接文件并不影响其他有相同 inode 号的文件。

    不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

    ln命令

    • linux系统可以用ln命令来创建链接文件。
    • ln命令格式:
      ln [参数] [源文件或目录] [目标文件或目录]

    主要参数:

    -i 交互模式,文件存在则提示用户是否覆盖。
    -s 软链接(符号链接)。如果不加 “-s” 选项,则建立硬链接文件
    -d 允许超级用户制作目录的硬链接。
    -b 删除,覆盖以前建立的链接
    -f:强制。如果目标文件已经存在,则删除目标文件后再建立链接文件

    软链接 (符号链接) ln -s source target
    硬链接 (实体链接)ln source target

    举例:

    展开全文
  • linux下的符号链接文件

    千次阅读 2018-07-20 10:40:20
    ln 源文件 目标文件 (注意:不能为目录创建硬链接) 2.关于inode  inode 译成中文就是索引节点。每个存储设备或存储设备的分区(存储设备是硬盘、软盘、U盘 … … )被格式化为文件系统后,应...

    链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link,也叫做软链接)。默认情况下,ln命令产生硬链接。 
    (一)硬链接 
    1.产生硬链接的语法

    ln 源文件 目标文件 (注意:不能为目录创建硬链接)

    2.关于inode 
    inode 译成中文就是索引节点。每个存储设备或存储设备的分区(存储设备是硬盘、软盘、U盘 … … )被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。 
    硬连接指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件才会被真正删除。 
    3.inode相同的文件是硬链接文件 
    在Linux 文件系统中,inode值相同的文件是硬链接文件,也就是说,不同的文件名,inode可能是相同的,一个inode值可以对应多个文件。 
    inode值相同的文件,他们的关系是互为硬链接的关系。当我们修改其中一个文件的内容时,互为硬链接的文件的内容也会跟着变化。如果我们删除互为硬链接关系的某个文件时,其它的文件并不受影响。 
    (二)软链接(符号链接) 
    与硬连接相对应,Lnux系统中还存在另一种连接,称为符号连接(Symbilc Link),也叫软连接。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。 
    1.产生软链接的语法 
    # ln -s 源文件或目录 目标文件或目录 
    2.关于软链接 
    软链接也叫符号链接,它和硬链接有所不同,软链接文件只是其源文件的一个标记。当我们删除了源文件后,链接文件不能独立存在,虽然仍保留文件名,但我们却不能查看软链接文件的内容了。 
    值得我们注意的是:当我们修改链接文件的内容时,就意味着我们在修改源文件的内容。当然源文件的属性也会发生改变,链接文件的属性并不会发生变化。当我们把源文件删除后,链接文件只存在一个文件名,因为失去了源文件,所以软链接文件也就不存在了。这一点和硬链接是不同的; 
    (三)示例 
    touch f1(创建一个f1的文件) 
    ln f1 f2 创佳一个f2的硬连接 
    ln -s f1 f3 创建一个f3的软连接 
    此时如果删除f3,对f1,f2无影响;如果删除f2,对f1,f3也无影响,如果删除f1,那么因为f2也应用f1,所以并不影响f2节点的,touch 创建的文件仍然存在;但是此时f3因为是软连接,导致f3失效。如果删除f1,f2 ,那么touch 创佳的文件会被删除

    展开全文
  • 符号链接文件和硬链接文件

    千次阅读 2017-07-04 15:45:53
    针对符号连接文件和硬连接文件。 测试以下函数,分析其执行过程并给出结论。 link(),unlink(),symlink(),readlink(),stat(),lstat() 1.Stat();lstat(); 分析:b文件为a文件的软连接文件,从...

    □□实验6-11.针对符号连接文件和硬连接文件。

    测试以下函数,分析其执行过程并给出结论。

    link(),unlink(),symlink(),readlink(),stat(),lstat()


    1.Stat();lstat();


    分析:b文件为a文件的软连接文件,从实验测试可以看出用stat();函数测试b文件显示的权限为文件a的权限,用lstat();函数测试b文件显示的权限为自身权限。

      结论:如果stat函数的第一个参数为符号连接文件,其读取的属性为源文件属性,如果要获取连接文件自身的属性,要调用lstat函数。

     

    2.link();


    分析:用link函数创建新文件a,删除abc文件后,a文件还能查看其内容。

    结论:用link函数创建的文件为硬链接文件,删除源文件也可以运行。


    3.unlink();



    分析:先确保没有a文件,创建abc文件的硬链接文件a,调用unlink函数删除源文件abc后查看结果,在创建a文件后文件属性硬链接数为2,删除源文件abc后文件属性硬链接数为1。

    结论:unlink函数是将该文件属性的硬链接数自动减1,但是绝大多数文件硬链接数为1,所以减1后即为删除。


    4.symlink(); 


    分析:用symlink函数创建的新文件sym_link_test,当删除源文件abc时,则不能查看文件sym_link_test的内容。

    总结:symlink函数的功能是创建符号连接文件。


    5.readlink();



    分析:用readlink函数,测试后显示符号连接文件sym_link_test的源文件名称。

    总结:readlink函数的功能是讲指定符号连接文件的源文件路径读入到buf中。






    展开全文
  • gcc 链接文件

    万次阅读 2018-04-15 12:03:06
    gcc 链接文件 生成静态库 gcc -c add.c minus.c ar rcv libtest1.a add.o minus.o 链接静态库 方法一: gcc -o test test.c libtest1.a 方法二: gcc -o test test.c -L. -ltest1 生成动态库 gcc -c...
  • 在linux系统中有一种文件叫做链接文件,可以为解决文件的共享使用。链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link)。 一、基本概念 1、硬链接 开始之前,...
  • 方法:点否。
  • linux下软链接文件的拷贝

    千次阅读 2018-05-29 16:30:00
    最近在编译libnl库准备拷贝到其他机器中使用的时候出现无法拷贝问题,原因是sd卡是fat32文件系统格式,这种文件系统不支持linux下的ln软链接文件, void@void-ThinkPad-E450:~/libnl-3.4.0$ sudo cp /usr/local/...
  • #!/bin/bash if [ -h "/nas/kvm_hcs/backup" ] then echo "yes" fi
  • java获取下载链接文件流并上传至OSS

    千次阅读 2020-03-09 18:24:00
    InputStream inputStream = new URL("下载链接地址").openStream(); MultipartFile file = new MockMultipartFile("file","上传文件名称”, ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream); //上传...
  • 可以采用cp -d命令来保持 我们可以看到在开始之前的软连接如下图 我想要把这里的所有文件复制到另一个文件夹下面去 然后我用 cp -d 源文件 目标文件 ...然后查看文件属性,可以看到依旧是软链接文件 ...
  • revit链接文件操作

    千次阅读 2015-06-04 18:09:23
    指定revit文件路径,在后台打开文件,获取document对象 string linkfile = @"G:\revit工程\test.rvt"; var linkdoc = commandData.Application.Application.OpenDocumentFile(linkfile); TaskDialog.Show(l
  • ubuntu下载web链接文件

    千次阅读 2017-12-11 01:33:06
    ubuntu下载web链接文件 #include  main()  {  system("wget -O /home/keyu0915/桌面/19.cer http://localhost:8080/text2/Do wnload?filename=19");  } 安装wget sudo apt-get update sudo apt-...
  • 但是当我们想把此链接指向第二个文件时,结果却不如意料那般:   仔细一看: 原来这个命令将软件链接创建到目录中去了,这是为何?   参考一下man: SYNOPSIS  ln [OPTION]......
  • 软硬链接 文件查找(find)

    千次阅读 2017-11-13 13:39:09
    .软硬链接 ...ln -s /file /file1 ##软链接(相当于文件快捷方式) ln /file /file1 ##硬链接 (相当于文件的复制,被系统记录了2次) 3.文件查找 1.locate filename ##在文件数据库中搜索filename
  • [root@iZ25a38chb4Z lory]# ls -l total 0 lrwxrwxrwx 1 root root 13 Jun 28 23:06 link.txt -> /tmp/test.txt [root@iZ25a38chb4Z lory]# cat link.txt  Hello [root@iZ25a38chb4Z lory]#...
  • 菜鸟详解iar的icf文件(链接文件

    万次阅读 多人点赞 2014-06-20 10:49:25
    一、每个芯片开发商都会针对每款芯片来编写一个.icf文件。对于基本的应用,这个.icf文件足以满足你的工程需要。但有时也会需要改动,比如当你的项目要添加外部RAM时就要修改一下.icf啦。 1、Icf到底干了啥呢?  ...
  • 什么是linux下的符号链接文件

    千次阅读 2015-06-17 10:32:17
    链接有两种,一种被称为硬链接...# ln 源文件 目标文件 (注意:不能为目录创建硬链接) 2.关于inode inode 译成中文就是索引节点。每个存储设备或存储设备的分区(存储设备是硬盘、软盘、U盘 ... ... )被格式
  • Linux--链接文件link

    千次阅读 2016-10-28 15:18:12
    linux系统链接文件分两种,一者硬链接文件,二者软链接文件;两文件都可通过命令ln来生成。 1.硬链接文件 使用方法:ln 原文件 硬链接文件 ​ 硬链接(hard link, 也称链接)就是文件的一个或多个文件名。再说白点...
  • linux ln命令: 链接文件或目录

    千次阅读 2015-08-31 09:26:01
    链接文件有点类似于Windows 的所谓快捷方式,但并不完全一样。链接有两种方式,软链接和硬链接。   软链接文件   软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同...
  • 我们在用tar命令打包备份数据的时候,某些情况下希望备份的是源文件,而不是符号链接文件,因为符号链接文件并不包含真实的文件内容。这时该如何操作?   解答: 使用“-h”的参数可以实现这个要求,它会把符号...
  • Android 获取下载链接文件大小

    千次阅读 2015-05-30 11:35:28
    今天写下载文件模块,文件可以下载,但是进度条没显示,经过调试,发现得到的下载文件长度为-1.经查找资料,解决。 // 创建连接 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); //处理下载...
  • RevitAPI: 如何插入链接文件

    千次阅读 2015-02-02 16:43:42
    在Revit界面中我们可以通过菜单”插入>链接Revit"很方便的插入一个链接文件,但是,如何使用RevitAPI来实现呢? 我先试了一下Document类下面有没有Link或者Load之类的函数,遗憾的是,Link和Load只支持DWG, DGN等...
  • [转]linux创建链接文件的两种方法

    千次阅读 2014-02-10 15:51:00
      一、 链接的分类: 链接分为软链接和硬链接:  1> 软链接: ...软链接又叫符号链接,这类文件包含了另外一个文件的路径。可以连接任意文件和目录,也可以连接不同的文件系统文件,也可以连接不存在的
  • SVN提交软链接文件时出错

    千次阅读 2016-05-05 14:28:58
    今天在提交SVN时,出现了“has unexpectedly changed kind”的错误。 百度之后,发现是因为我将原先的一些文件改为了软链接之后导致提交...2、创建软链接文件并提交。 参考:http://www.fwolf.com/blog/post/274
  • 如果要想说清楚 ln 命令,则必须先解释下 ext 文件系统(Linux 文件系统)是如何工作的。我们在前面讲解了分区的格式化就是写入文件系统,而我们的 Linux 目前使用的是 ext4 文件系统。如果用一张示意图来描述 ext4 ...
  • 1.ext4 文件系统 如果要想说清楚 ln 命令,则必须先解释下 ext 文件系统是如何工作的。分区的格式化就是写入文件系统,而我们的 Linux 目前使用的是 ext4 文件系统。如果用一张示意图来描述 ext4 文件系统,则可以...
  • Java判断一个文件是否是链接文件

    千次阅读 2013-09-11 04:02:44
    Apache使用这样的方式来判断: public static boolean isSymlink...这种判断方式的依据就是,如果是链接文件(软连接、硬链接),那么getCanonicalFile和getAbsoluteFile的返回值是不一样的。否则一样。
  • 创建硬链接的函数: 相关函数:symlink, unlink 头文件:#include &...函数说明:link函数中oldpath指定已经存在文件,newpath指定的名称建立一个新的连接(硬链接),若是newpath指定的文件已存在则不会...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,444,799
精华内容 977,919
关键字:

链接文件