mtime -- modify time 修改时间
硬链接
硬链接(hard link, 也称链接)就是一个文件的一个或多个文件名。再说白点,所谓链接无非是把文件名和计算机文件系统使用的节点号链接起来。因此我们可以用多个文件名与同一个文件进行链接,这些文件名可以在同一目录或不同目录。 中文名 硬链接 外文名 hard link 释 义 一个文件的一个或多个文件名 目 的 多个文件名能同时修改同一个文件 目录 1 硬链接概念 2 关于Windows系统的硬链接 ▪ 简介 ▪ Windows系统的硬链接,系统属性测试 ▪ 硬链接在Windows系统下的应用 3 关于Linux系统的硬链接 ▪ 硬链接的定义 ▪ 硬链接的使用与注意事项 ▪ 硬链接与软链接的区别 硬链接概念 编辑 一个文件有几个文件名(用ln命令实现多个文件名),我们就说该文件的链接数为几。由定义可知,此链接数可以是1, 这表明该文件只有一个文件名。 总之,硬链接就是让多个不在或者同在一个目录下的文件名,同时能够修改同一个文件,其中一个修改后,所有与其有硬链接的文件都一起修改了。 关于Windows系统的硬链接 编辑 简介 Windows系统的硬链接是一种针对文件的特殊快捷方式,只不过这种快捷方式的实现和一般的快捷方式不一样,是NTFS文件系统特有的属性之一,在Linux下面,也有类似的机制。 认识了硬链接究竟是怎么一回事,理解硬链接的两个限制就容易多了。 1、硬连接适用于在同一个卷的文件级别,不允许给目录创建硬链接; 2、硬连接是不能跨卷的,只有在同一文件系统中的文件之间才能创建链接。 Windows系统的硬链接,系统属性测试 WindowsVista/Windows7自带了创建硬连接的命令:mklink.exe,利用这个命令,我们可以给指定的文件创建硬连接: 下面的命令将在link.txt和source.txt之间建立硬连接关系 C:UsershoiiDesktop》mklink /h link.txt gb.txt 为link.txt《《===》》gb.txt创建了硬链接 注意上面的例子:link.txt本是一个不存在的文件,但是当执行完mklink命令以后,link.txt文件也就被创建了。其实,link.txt是一个虚假的文件,它是在文件系统层面上对gb.txt文件的一个映射,而link.txt是不占硬盘空间的。 关于硬盘空间的占用问题,可以这样测试: 1、给硬盘划分一个新分区,空间只有2GB 2、在这个分区的test目录里面新建了一个1.9GB大小的文件,此时剩余空间是0.1GB 3、用mklink命令给这个1.9GB大小的文件建立了一个硬连接 4、检查这个分区的剩余空间,还是0.1GB,但是如果用资源管理器看test目录的属性,会发现有2个文件,总大小是3.8GB(整个分区才2GB,能够容纳3.8GB大小的文件吗?显然不可能了) 还是针对上述的例子,如果我们把原始的文件gb.txt删除以后,link.txt文件还是会继续存在的,且内容就是source.txt的文件内容。也就是说,我们删除gb.txt,实际上删除的仅仅是这种连接关系,文件本身还是没有被操作的。 关于硬连接,最后一个需要介绍的内容是:当硬连接建立以后,硬连接双方任何一个对象被修改,都会造成对应的连接对象被修改。例如上面的例子:如果修改了link.txt,那么gb.txt文件也会同步被修改,反之亦然。这一点和SHELL层面的快捷方式不同,SHELL层面的快捷方式文件LNK仅仅是一个指示关系,修改LNK文件并不影响LNK文件指向的对象,修改LNK文件指向的对象也不会影响LNK文件。 硬链接在Windows系统下的应用 1.节省硬盘空间。同样的文件,只需要维护硬连接关系,不需要进行多重的拷贝,这样可以节省硬盘空间。 2.重命名文件。重命名文件并不需要打开该文件,只需改动某个目录项的内容即可。 3.删除文件。删除文件只需将相应的目录项删除,该文件的链接数减1,如果删除目录项后该文件的链接数为零,这时系统才把真正的文件从磁盘上删除。 4.文件更新。如果涉及文件更新,只需要先在WinSxS目录里面下载好一个新版本,然后修改WindowsSystem32下面同名文件的硬连接关系,从旧版本的硬连接指向新版本的硬连接,这样就能够快速的完成文件的更新工作,而不需要进行文件的复制,速度也会快不少。 5.卸载补丁。遇到需要补丁卸载的情况,只需要把硬连接指向改为旧版本就可以了,没有文件替换的问题。而且建立了硬连接关系的文件之间的修改是同步的,因此只要有一方被修改了,另一方也会得到修改。 篇幅关系,不再赘述。 关于Linux系统的硬链接 编辑 硬链接的定义 Linux 文件系统最重要的特点之一是它的文件链接。链接是对文件的引用,这样您可以让文件在文件系统中多处被看到。不过,在 Linux 中,链接可以如同原始文件一样来对待。链接可以与普通的文件一样被执行、编辑和访问。对系统中的其他应用程序而言,链接就是它所对应的原始文件。当您通过链接对文件进行编辑时,您编辑的实际上是原始文件。链接不是副本。有两种类型的链接:硬链接和符号链接(软链接)。 硬链接只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为 inode)。当您移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。如果您删除的文件有相应的硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。 硬链接的使用与注意事项 ln 源文件 目标文件 : 创建硬链接文件 比如 ln test2.sh test_l.sh。这里test_l.sh就是链接到了test2.sh脚本文件 注意事项: 1、修改源文件或者目标文件, 对应另外一个文件也会发生相应修改. 2、删除源文件或者目标文件, 对另外一个文件没有影响. 3、硬链接文件不占用存储空间. 4、不能对目录文件进行创建硬链接操作. 5、硬链接文件不能跨文件系统. 硬链接与软链接的区别 在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号inode 。软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的(那就和windows 下的快捷方式的那个文件有很接近的意味)。软链接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的,删了这个软连接文件,那就等于不需要这个连接,和原来的存在的实体原文件没有任何关系,但删除原来的文件,则相应的软连接不可用(cat那个软链接文件,则提示“没有该文件或目录“) 硬连接是不会建立inode的,他只是在文件原来的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。相反都是软连接会重新建立一个inode,当然inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息。一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查inode link count的数值,如果他大于等于1,那么inode不会被回收。因此文件的内容不会被删除。 创建硬链接实际上是为原文件在储存器中的资源再新建一个入口,所以硬链接和原文件指向的其实是储存器中的同一处资源(可以理解为硬链接和原文件就是同一个文件)。可以通过ls -i来查看一下,这两个文件的inode号是同一个,说明它们是同一个文件;而软链接建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件。 软链接可以跨文件系统,硬链接不可以;软链接可以对一个不存在的文件名(filename)进行链接(当然此时如果你vi这个软链接文件,linux会自动新建一个文件名为filename的文件),硬链接不可以(其文件必须存在,inode必须存在);软链接可以对目录进行连接,硬链接不可以。两种链接都可以通过命令 ln 来创建。ln 默认创建的是硬链接。使用 -s 开关可以创建软链接。