在python中重命名符号链接
我想知道是否可以用python重命名符号链接 已尝试在python中重命名符号链接,python,python-2.7,Python,Python 2.7,我想知道是否可以用python重命名符号链接 已尝试os.rename和shutil.move 有什么想法吗 os.rename返回此错误:OSError:[Errno 18]跨设备链接 >>> import sys, os >>> >>> path = '/Library/Application Support/appsolute/MAMP PRO/db/' >>> job = path + 'mysql-job/' &
os.rename
和shutil.move
有什么想法吗
os.rename返回此错误:OSError:[Errno 18]跨设备链接
>>> 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
导入系统,操作系统
>>>
>>>path='/Library/Application Support/appsolute/MAMP PRO/db/'
>>>作业=路径+'mysql作业/'
>>>perso=path+'mysql perso/'
>>>mysql=路径+'mysql/'
>>>
>>>重命名(mysql,作业)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
操作错误:[Errno 18]跨设备链接
>>>退出()
Danny Dombrowski:script ddombrowski$ls-al/Library/Application\Support/appsolute/MAMP\PRO/db/
总数24
drwxrwxr-x 5根管理员170 7 fév 19:29。
drwxrwxr-x 12根管理员408 7 fév 17:14。。
-rw-r--r--@1 ddombrowski管理员6148 7 fév 19:29。DS_商店
lrwxr-xr-x 1 ddombrowski admin 46 7 fév 19:29 mysql->/Volumes/Gestion Portail Sante/Database/mysql/ drwxrwxr-x 11 ddombrowski管理员374 7 fév 19:22 mysql个人 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
重命名应该可以工作
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
确保在符号链接后不包含
/
:链接/
与链接/
相同,而不是与链接
操作系统相同。重命名
可以正常工作:
$ 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
请确保在符号链接后不包含
/
:链接/
与链接/
相同,而与链接
不同。我在尝试操作系统时收到以下错误:操作系统错误:[Errno 18]跨设备链接。重命名我的link@Danny.Domb这意味着你有一个硬链接,而不是符号链接。请提出一个新问题,并尝试在将其归因于Python之前在shell中重现该行为。@Danny.Domb确实如此,但错误消息表明存在硬链接。如果你真的认为你已经创建了一个符号链接,请发布ls-l
lrwxr-xr-x 1 ddombrowski admin 46 7 fév 19:29 mysql->/Volumes/Gestion Portail Sante/Database/mysql/I的输出:当我尝试重命名我的操作系统时,出现以下错误:OSError:[Errno 18]跨设备链接link@Danny.Domb这意味着你有一个硬链接,不是符号链接。请提出一个新问题,并尝试在将其归因于Python之前在shell中重现该行为。@Danny.Domb确实如此,但错误消息表明存在硬链接。如果你真的认为你已经创建了一个符号链接,请发布ls-l
lrwxr-xr-x 1 ddombrowski admin 46 7 fév 19:29 mysql->/Volumes/Gestion Portail Sante/Database/mysql/的输出,shutil.move
对我来说效果很好。它对我来说也很好。。。除了它简单地将符号链接的所有内容移动到新路径,而不是简单地为它的价值重命名,shutil.move
对我来说很好。它对我来说也很好。。。除了它只是将符号链接的所有内容移动到新路径,而不是简单地重命名其本身,不向符号链接名称追加/
很重要:)当然,不向符号链接名称追加/
很重要:)