[20160911]windows下建立硬链接.txt

[20160911]windows下建立硬链接.txt

--大家知道linux ln命令可以建立硬连接或者软连接.参考:
http://blog.itpub.net/267265/viewspace-1812272/

--实际上windows下也有类似ln命令,只不过许多人很少在命令行使用windows,对于里面的命令行命令知道的更少.
--通过例子说明,使用fsutil就可以建立硬连接.补充一点建立这种硬连接仅仅支持NTFS文件系统,不要指望支持FAT32.
--实际上这个测试,主要有用户需求修改schema,链接http://blog.itpub.net/267265/viewspace-2124787/
--里面提到操作要drop tablespac,这样通过建立硬连接可以一定程度减少错误。

G:\>echo aaa > a.txt

G:\>dir a.txt
 驱动器 G 中的卷是 test
 卷的序列号是 E0CD-FBA5

 G:\ 的目录

2016-09-11  16:52                 6 a.txt
               1 个文件              6 字节
               0 个目录    154,017,792 可用字节

G:\>fsutil
---- 支持的命令 ----
behavior        控制文件系统行为
dirty           管理卷的被损坏的位数
file            文件特定命令
fsinfo          文件系统信息
hardlink        硬链接管理
objectid        对象 ID 管理
quota           配额管理
reparsepoint    重分析点管理
sparse          稀疏文件控制
usn             USN 管理
volume          卷管理

G:\>fsutil hardlink create
用法 : fsutil hardlink create <新文件名> <现有文件名>
例如 : fsutil hardlink create c:\foo.txt c:\bar.txt

G:\>fsutil hardlink create g:\a.txt g:\other\b.txt
错误:  系统找不到指定的文件。

--//微软真够变态,新文件名要放在前面..

G:\>fsutil hardlink create  g:\other\b.txt g:\a.txt
为 g:\other\b.txt <<===>> g:\a.txt 创建了硬链接

G:\>echo bbb>> g:\other\b.txt


G:\>cat a.txt
aaa
bbb

G:\>cat \other\b.txt
aaa
bbb

--可以发现我修改了g:\other\b.txt而a.txt的内容也跟着变化.
--至于如何知道这2个文件存在链接关系,在windows下从那里看,我还真不知道,那位知道告诉我。

--我google看了一下:

Vista、Windows 7
在Vista和Win7下面,命令简化了,是mklink,功能比XP中的fsutil强了很多。

D:\tools\rlwrap>mklink
mklink
创建符号链接。

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      创建目录符号链接。默认为文件
                符号链接。
        /H      创建硬链接,而不是符号链接。
        /J      创建目录联接。
        Link    指定新的符号链接名称。
        Target  指定新链接引用的路径
                (相对或绝对)。

D:\tools\rlwrap>mklink c.sql a.sql
mklink c.sql a.sql
为 c.sql <<===>> a.sql 创建的符号链接


D:\tools\rlwrap>dir ?.sql /l
dir ?.sql /l
 驱动器 D 中的卷没有标签。
 卷的序列号是 0006-A37E

 D:\tools\rlwrap 的目录

2015/03/14  22:23             4,926 a.sql
2016/09/11  20:52          c.sql [a.sql]
               3 个文件          4,980 字节
               0 个目录 97,416,499,200 可用字节


D:\tools\rlwrap>mklink /h d.sql a.sql
mklink /h d.sql a.sql
为 d.sql <<===>> a.sql 创建了硬链接


D:\tools\rlwrap>dir ?.sql /l
dir ?.sql /l
 驱动器 D 中的卷没有标签。
 卷的序列号是 0006-A37E

 D:\tools\rlwrap 的目录

2015/03/14  22:23             4,926 a.sql
2016/09/11  20:52          c.sql [a.sql]
2015/03/14  22:23             4,926 d.sql
               3 个文件          9,852 字节
               0 个目录 97,416,499,200 可用字节

--软连接可以发现,但是如何确定硬连接还是不知道。

https://technet.microsoft.com/en-us/library/cc788097(WS.10).aspx

D:\tools\rlwrap>fsutil hardlink list d.sql
\tools\rlwrap\a.sql
\tools\rlwrap\d.sql

D:\tools\rlwrap>fsutil hardlink
---- 支持的 HARDLINK 命令 ----

create          创建硬链接
list            枚举文件上的硬链接

--另外一台XP的机器没有list这个命令的说明,不知道是否是版本的问题。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-2124812/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/267265/viewspace-2124812/

你可能感兴趣的:([20160911]windows下建立硬链接.txt)