繁体   English   中英

在python中重命名符号链接

[英]Rename symbolic link in python

我想知道是否可以使用 python 重命名符号链接。

已经尝试过os.renameshutil.move

有任何想法吗?

os.rename 返回此错误: OSError: [Errno 18] Cross-device link

>>> import sys, os
>>> 
>>> path = '/Library/Application Support/appsolute/MAMP PRO/db/'
>>> job = path + 'mysql-job/'
>>> perso = path + 'mysql-perso/'
>>> mysql = path + 'mysql/'
>>> 
>>> os.rename(mysql, job)

Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    OSError: [Errno 18] Cross-device link
>>> exit()

Danny-Dombrowski:script ddombrowski$ ls -al /Library/Application\ Support/appsolute/MAMP\ PRO/db/
    total 24
    drwxrwxr-x   5 root         admin   170  7 fév 19:29 .
    drwxrwxr-x  12 root         admin   408  7 fév 17:14 ..
    -rw-r--r--@  1 ddombrowski  admin  6148  7 fév 19:29 .DS_Store
    lrwxr-xr-x   1 ddombrowski  admin    46  7 fév 19:29 mysql -> /Volumes/Gestion Portail         Sante/Database/mysql/
    drwxrwxr-x  11 ddombrowski  admin   374  7 fév 19:22 mysql-perso

os.rename 应该可以工作。

xupeng@xupeng t $ ls -l
total 0
-rw-r--r-- 1 xupeng xupeng 0 Feb  8 08:22 a
lrwxrwxrwx 1 xupeng xupeng 1 Feb  8 08:23 b -> a
xupeng@xupeng t $ python
Python 2.6.5 (release26-maint, Sep 21 2011, 10:32:38) 
[GCC 4.3.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.rename('b', 'c')
xupeng@xupeng t $ ls -l
total 0
-rw-r--r-- 1 xupeng xupeng 0 Feb  8 08:22 a
lrwxrwxrwx 1 xupeng xupeng 1 Feb  8 08:23 c -> a

os.rename可以正常工作:

$ ln -s target link
$ python -c "import os; os.rename('link', 'link.new')"
$ ls -l link.new
lrwxrwxrwx 1 phihag phihag 6 Feb  8 01:25 link.new -> target

确保在符号link/后不包含/link/link/.相同link/. ,和link不一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM