首页 > 数据库 > Oracle > [20240917]windows下软链接.txt
[20240917]windows下软链接.txt
--//这个问题出现Windows10专业版上,使用tar+gzip打包在windows下使用7-zip解压时遇到的问题,我无法使用cd tpt进入该目录。
--//做一个人记录。
--//在linux下:
$ cd sqllaji/
$ ls -l | grep tpt
lrwxrwxrwx. 1 oracle oinstall 17 2021-11-22 09:28:29 tpt -> tpt-oracle-master
drwxr-xr-x. 19 oracle oinstall 20480 2024-09-17 15:39:53 tpt-oracle-master
drwxr-xr-x. 19 oracle oinstall 20480 2024-09-14 17:37:54 tpt-oracle-master.org
--//tpt链接到tpt-oracle-master目录。
--//而在windows10下:
D:\tools\sqllaji>dir | grep tpt
2024/09/17 15:43 <SYMLINK> tpt [tpt-oracle-master]
2024/09/17 15:39 <DIR> tpt-oracle-master
2024/09/14 17:37 <DIR> tpt-oracle-master.org
--//而执行如下报错。
D:\tools\sqllaji>cd tpt
目录名称无效。
D:\tools\sqllaji>cat tpt/46on.sql
-- Copyright 2018 Tanel Poder. All rights reserved. More info at http://tanelpoder.com
-- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms & conditions.
alter session set events '10046 trace name context forever, level &1'
/
--//cat 可以看tpt链接下文件内容,也就是使用没有任何问题。而使用传统的type命令报错。
D:\tools\sqllaji>type tpt/46on.sql
命令语法不正确。
D:\tools\sqllaji>type tpt\46on.sql
目录名称无效。
D:\tools\sqllaji>type tpt-oracle-master\46on.sql
-- Copyright 2018 Tanel Poder. All rights reserved. More info at http://tanelpoder.com
-- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms & conditions.
alter session set events '10046 trace name context forever, level &1'
/
--//以前在windows2003以及windwos xp下都是正常的,只要文件系统是ntfs。
--//如何解决:
D:\tmp>mklink
创建符号链接。
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 创建目录符号链接。默认为文件
符号链接。
/H 创建硬链接而非符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径(相对或绝对)。
D:\tools\sqllaji>mklink /d tpta tpt-oracle-master
为 tpta <<===>> tpt-oracle-master 创建的符号链接
D:\tools\sqllaji>dir | grep tpt
2024/09/17 15:43 <SYMLINK> tpt [tpt-oracle-master]
2024/09/17 15:54 <DIR> tpt-oracle-master
2024/09/14 17:37 <DIR> tpt-oracle-master.org
2024/09/17 15:59 <SYMLINKD> tpta [tpt-oracle-master]
--//注意两者不同,感觉SYMLINK表示文件链接,而SYMLINKD表示才是目录链接。
D:\tools\sqllaji>type tpta/46on.sql
命令语法不正确。
D:\tools\sqllaji>type tpta\46on.sql
-- Copyright 2018 Tanel Poder. All rights reserved. More info at http://tanelpoder.com
-- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms & conditions.
alter session set events '10046 trace name context forever, level &1'
/
--//这样应该才是正确的。
D:\tools\sqllaji>mklink ver3.sql ver2.sql
为 ver3.sql <<===>> ver2.sql 创建的符号链接
D:\tools\sqllaji>dir | grep ver3.sql
2024/09/17 16:03 <SYMLINK> ver3.sql [ver2.sql]
--//出现的是SYMLINK,也验证我的判断。
D:\tools\sqllaji>rm ver3.sql
D:\tools\sqllaji>rm tpt
D:\tools\sqllaji>rm tpta
rm: tpta: is a directory
D:\tools\sqllaji>rmdir tpta
D:\tools\sqllaji>mklink /d tpt tpt-oracle-master
为 tpt <<===>> tpt-oracle-master 创建的符号链接
D:\tools\sqllaji>dir | grep tpt
2024/09/17 16:05 <SYMLINKD> tpt [tpt-oracle-master]
2024/09/17 15:54 <DIR> tpt-oracle-master
2024/09/14 17:37 <DIR> tpt-oracle-master.org
D:\tools\sqllaji>cd tpt
--//OK,问题解决。
--//反向验证看看:
D:\tools\sqllaji>mklink tpta tpt-oracle-master
为 tpta <<===>> tpt-oracle-master 创建的符号链接
D:\tools\sqllaji>dir | grep tpt
2024/09/17 16:05 <SYMLINKD> tpt [tpt-oracle-master]
2024/09/17 15:54 <DIR> tpt-oracle-master
2024/09/14 17:37 <DIR> tpt-oracle-master.org
2024/09/17 16:07 <SYMLINK> tpta [tpt-oracle-master]
D:\tools\sqllaji>cd tpta
目录名称无效。
D:\tools\sqllaji>rm tpta
--//这个也许是解压工具上的bug,我使用的解压工具是7-ZIP,不再细究这个细节问题。
--//或者讲mklink存在bug,可以使用文件链接到目录,而且还可以正常访问,但是无法cd进入。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3028116/ ,如需转载,请注明出处,否则将追究法律责任。