我需要为dir2
中的每个项目(文件或目录)创建一个符号链接。 dir2
已经存在且不是符号链接。在Bash中,我可以轻松实现这一点:
ln -s /home/guest/dir1/* /home/guest/dir2/
但是在 Python 中使用 os.symlink
时我遇到了错误:
>>> os.symlink('/home/guest/dir1/*', '/home/guest/dir2/')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 17] File exist
我知道可以使用subprocess
来运行ln
命令。但我不想采用那个解决方案。
我也知道可以使用os.walk
或glob.glob
的变通方法,但我想知道是否可能使用os.symlink
来实现。
os.symlink
只是对相应系统调用的简单封装(或多或少),因此不会提供与使用该系统调用的完整工具相同的语义。 - 0xC0000022Lln -s
命令可以完成的事情,而是 shell 可以完成的事情。 - abarnertsymlink
、symlinkat
或CreateSymbolicLinkW
。而且语义明显是设计成与POSIXsymlink
匹配的,即使它最终没有使用该函数。 - abarnert