ITPub博客

首页 > 数据库 > Oracle > [20240917]windows下软链接.txt

[20240917]windows下软链接.txt

原创 Oracle 作者:lfree 时间:2024-09-18 21:23:48 0 删除 编辑

[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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7970381