examples - Copiando un enlace simbólico en Python
os.system() python (1)
Quiero copiar un archivo src
al destino dst
, pero si src
es un enlace simbólico, conserve el enlace en lugar de copiar el contenido del archivo. Una vez realizada la copia, os.readlink
debería devolver lo mismo tanto para src
como para dst
.
El módulo shutil
tiene varias funciones, como copy
, copy
y copy2
, pero todas estas copiarán el contenido del archivo y no conservarán el enlace. shutil.move
tiene el comportamiento correcto, aparte del hecho de que elimina el archivo original.
¿Existe una forma incorporada en Python para realizar una copia de un archivo y preservar los enlaces simbólicos?
Solo haz
def copy(src, dst):
if os.path.islink(src):
linkto = os.readlink(src)
os.symlink(linkto, dst)
else:
shutil.copy(src,dst)
shutil.copytree hace algo similar, pero como señaló senderle, es delicado copiar solo directorios, no archivos individuales.