标签: symbolic-link

如何复制相对于复制根目录维护符号链接和连接的文件夹?

这可能有点极端,但我很想知道是否有一种简单的方法可以实现这一点。

假设我进行了以下设置(其中后两个是第一个的符号链接):

  • D:\工作\CommonStuff
  • D:\Work\Project1\Stuff -> D:\Work\CommonStuff
  • D:\Work\Project2\Stuff -> D:\Work\CommonStuff

现在假设我想备份D:\Workto E:\Work

我希望相对地维护这些链接,从而导致:

  • E:\工作\CommonStuff
  • E:\Work\Project1\Stuff -> D:\Work\CommonStuff
  • E:\Work\Project2\Stuff -> D:\Work\CommonStuff

我当然明白,如果我有:

  • D:\工作\CommonStuff
  • D:\Work\Project1\Stuff -> D:\Work\CommonStuff
  • D:\Work\Project2\Stuff -> D:\Work\CommonStuff
  • D:\Work\Project3\Stuff -> D:\OtherCommonStuff

那么事情就会变得复杂,因为如果我只是复制,D:\Work那么复制命令会对最后一个选项做什么?在这种情况下,我想直接复制文件,丢失符号链接。

有什么方法 robocopy 或 xcopy 或 [anyother]copy 可以在 Windows 10 上实现此目的吗?

windows symbolic-link ntfs-junction windows-10

5
推荐指数
1
解决办法
6518
查看次数

如何创建一个符号链接到 root 拥有的、可供任何东西读取的目录?

我正在尝试使用 CertBot 设置一个独立的安全证书,并./public/certbot从我的服务器创建一个符号链接 ( ),以便我可以包含证书,而无需它们实际位于服务器的目录树下(这是我用于测试的 Linode和开发,所以我将使用各种服务器软件)。证书已在 下成功安装/etc/letsencrypt/,并且按照CertBot 文档中的说明,安装是使用 完成的sudo,因此所有文件均归 root 所有。我已尝试了所有我能想到的方法来创建服务器可以读取的符号链接,但我不断收到权限错误。目前,符号链接文件、/etc/letsencrypt/live域文件夹以及域文件夹内的所有文件都已被sudo chmod添加到777,我尝试创建不带 的符号链接文件sudo,但它不允许我这样做。作为普通用户,我可以在没有 的情况下cd进入符号链接文件和ls域文件夹sudo,因此我可以看到其中的所有内容,但是当我启动服务器(当前webpack-dev-server)时,它没有权限。来自服务器的错误消息表明路径正在被正确解析(因为它给了我一个访问错误,而不是ENOENT)。

我还尝试创建一个真实的public/certbot文件夹和指向证书文件的单独符号链接,但出现相同的错误。

我对Linux权限的了解肯定有一些差距。有没有解决的办法?谢谢。

linux symbolic-link certificate permissions

5
推荐指数
1
解决办法
5757
查看次数

以普通用户身份创建符号链接

我需要创建一个位于用户漫游 AppData 中的符号链接,并指向另一个本地驱动器上的文件夹(该文件夹是用户特定的)。我已经在 PowerShell 5 中尝试过mklinkNew-Item -ItemType SymbolicLink,并且都需要管理员权限,这使得它在这种情况下毫无用处。我还尝试将用户环境变量放入路径中,例如 D:\C4R\%username%,但这也不起作用。是否有一种机制可以作为普通用户进行符号链接?或者符号链接的整个概念真的是一个管理问题吗?

symbolic-link

5
推荐指数
1
解决办法
6250
查看次数

7zip 强制忽略 NTFS 连接

Windows 1803、7z 18.05

尝试归档和压缩具有引用所述结构部分的多个 NTFS 连接的文件夹结构(即没有“外部”链接) - 是否有可能在没有 7zip 解析连接的情况下压缩该结构,从而导致重复?

保留连接点会很整洁,将连接点存档为空文件夹也是可以接受的 - 但存档大小具有绝对优先权。

选择tarwim作为格式具有有关 NTFS 符号链接的选项,但似乎不涉及压缩(仅store显示为压缩级别) - 我必须随后进行压缩,这似乎是不必要的中间步骤。

我可以在存档之前删除交汇点,但如果可能的话,我宁愿不这样做。

compression symbolic-link junction 7-zip windows-10

5
推荐指数
2
解决办法
3214
查看次数

Windows 10 mklink 到 c:/originalDirectory,如果从链接目录中删除原始文件,则保留原始文件

我使用的是 Windows 10。

想象一下,我有一个目录,并且我通过执行以下操作c:\originalDirectory创建了一个链接:c:\newDirectorymklink /d c:\newDirectory c:\originalDirectory

我的问题是关于链接目录中的文件。当我删除时c:\newDirectory\exampleFile.jpg,原始文件也会被删除c:\originalDirectory\exampleFile.jpg。当然,链接本身并c:\newDirectory没有被删除。

执行目录连接会产生mklink /j c:\newDirectory c:\originalDirectory相同的行为。

是否有某种形式的链接或文件同步机制,如果我删除c:\newDirectory\exampleFile.jpg,原始文件会c:\originalDirectory\exampleFile.jpg被保留?当然,我也想保留链接本身c:\newDirectory

我认识到,如果我通过这样做创建指向各个文件本身的链接mklink c:\newDirectory\linkToExampleFile.jpg c:\originalDirectory\exampleFile.jpg,我可以删除c:\newDirectory\linkToExampleFile.jpg而不删除c:\originalDirectory\exampleFile.jpg。但其中有很多文件c:\originalDirectory,因此创建每个文件的链接似乎不是一个很好的选择。

symbolic-link mklink junction directory-junction windows-10

5
推荐指数
1
解决办法
331
查看次数

在 Windows/WSL 下检测 Linux NTFS 符号链接

在 Linux 中的 NTFS 驱动器 ( ln -s) 上创建的符号链接在 Windows 中显示为包含内容的短文件IntxLNK + 0x01 + (UTF-16 encoded target path)— 可能是Interix。我想编写一个脚本,在 Windows 中启动时使用 WSL 的ln. 但是,我不知道如何检测真正是 Linux 符号链接的短文件,除非查看每个文件的内容,这对于大型文件系统来说会很糟糕,并且对于从魔法开始的普通文件来说会失败。

为什么 NTFS-3g 仍然无法像 Windowsmklink或 WSL2一样创建正确的重解析点ln -s,即使此类 Windows 符号链接在 Linux 下正常工作,并且即使getfattr -n system.ntfs_reparse_data可以读取 NTFS 符号链接数据,也超出了我的范围。它实际上应该只是一个简单的setfattr,尽管我不知道要在属性中放入什么。

那么,有没有一种方法可以使用文件元数据(而不是内容)来检测在 Linux 下创建的符号链接?我确信 Linux 符号链接具有一些特殊属性,因为 NTFS-3g 可以区分包含InterLnkxmagic 的纯文件和包含相同 magic 的实际符号链接。

相关(没有答案):https://www.reddit.com/r/linuxquestions/comments/env60r/converting_linux_symlinks_to_windows_symlinks/

用于转换的Python脚本;通过文件内容检测

ntfs symbolic-link ntfs-3g interix windows-subsystem-for-linux

5
推荐指数
1
解决办法
693
查看次数

符号链接和 sudo 可执行文件

如果我有以下 sudoers 条目

usera ALL=(userb) NOPASSWD: /home/userc/bin/executable-file
usera ALL=(userb) NOPASSWD: /home/userc/bin/link-to-another-executable-file
Run Code Online (Sandbox Code Playgroud)

当我以 usera 身份登录并尝试运行以下命令时,它可以工作

sudo -u userb /home/userc/bin/executable-file
Run Code Online (Sandbox Code Playgroud)

不是下面的那个。

sudo -u userb /home/userc/bin/link-to-another-executable-file

Sorry, user usera is not allowed to execute '/home/userc/bin/link-to-another-executable-file' as userb on hostname.
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

linux centos sudo symbolic-link command-line

4
推荐指数
1
解决办法
6197
查看次数

在 Apache、PHP 和 Windows 7 中使用符号链接目录

我正在尝试为目录设置符号链接,但遇到了最奇怪的错误。我在用:

mklink /d C:\www\site\inc C:\inc

C:\inc\script.php我需要运行的文件在哪里。这看起来很简单,并且在我第一次执行脚本时(通过访问http://localhost/inc/script.php)确实有效。然而,在那之后,我收到一个错误并且无法让脚本再次成功执行,直到我删除并重新创建符号链接(即使关闭 Apache 或重新启动 Windows 也没有效果)。

请注意,其他一切都正常运行,符号链接有效,Apache 确实有权访问C:\inc并启用了 FollowSymLinks。这是我得到的错误:

警告:未知:无法打开流:第 0 行的未知中没有此类文件或目录

致命错误:未知:在第 0 行的未知中打开所需的“C:/inc/script.php”(include_path='.;C:\php5\pear') 失败

有谁知道与第 0 行的 Unknown 有什么关系,为什么它会在出现此错误之前只执行一次?

windows-7 apache-http-server symbolic-link php

4
推荐指数
1
解决办法
2万
查看次数

在 OS X 中,如何为给定目录(而不是目录本身)中的所有内容创建符号链接?

假设我有一堆配置文件想要存储在其他地方,但是如果我移动它们然后符号链接目录,应用程序会将其视为符号链接并且不会使用包含的文件。

相反,我想做的是找出一个命令,该命令允许我为给定目录中的所有文件批量创建符号链接。这能做到吗?

regex symbolic-link macos

4
推荐指数
1
解决办法
2774
查看次数

如何在 Windows Server 2003 上创建目录符号链接?

我正在尝试在 Windows Server 2003 下创建一个目录符号链接,但我没有任何运气。

我尝试过junction.exe (Sysinternals)、ln.exe 和linkd.exe (Windows Server 2003 Resource Kit)。

我想要c:\folder\subfolder链接到\fileserver\realSubfolder

这在 Windows 7 下工作得很好(使用 mklink.exe),但我无法让它在 Windows Server 2003 下工作。

有人可以帮我吗?

symbolic-link network-shares windows-server-2003

4
推荐指数
1
解决办法
3万
查看次数