我以为我以前见过这个问题的答案,但在这里搜索和谷歌后我找不到它。
如何用它指向的文件的副本替换现有的符号链接(symbolic link)? IE 通过链接复制源文件。
从这里开始
/path/to/file.txt
/link/path/file.txt -> /path/to/file.txt
然后调用类似 copy('/path/to/file.txt', '/link/path/file.txt');
并得到:
/path/to/file.txt
/link/path/file.txt
我不能只使用 copy()
的原因是它似乎不支持用其源文件覆盖符号链接(symbolic link),因为它认为它们是相同的东西并给出错误“XXXXX 和 YYYYY 相同(未复制)”
是否有像 copy 这样的方法可以用源文件的副本覆盖符号链接(symbolic link)?
最佳答案
我认为仅用一个命令是不可能的。这是一个不涉及重命名的解决方案(您可能应该添加错误检查):
$linkLoc = readlink('/link/path/file.txt');
unlink('/link/path/file.txt');
copy($linkLoc, '/link/path/file.txt');
如果您发现自己经常这样做,您可能会发现将其包装在一个方便的函数中是值得的。
关于perl - 在 perl 中用文件副本覆盖符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7070632/