
Me gustaría desvincular los enlaces simbólicos como este:
unlink *
Sin embargo diceunlink: extra operand
Me gustaría eliminar solo el archivo de enlace y conservar el archivo original.
Respuesta1
Usando el "*" estás intentando desvincular todos los archivos y directorios en tu ubicación actual.
unlink no puede manejar archivos o directorios, solo puede manejar enlaces, use el comando buscar para buscar todos los enlaces y desvincularlos, así:
find . -type l -exec unlink {} \;
Respuesta2
Evitaría generar otros procesos con find … -exec …
. Cuando lo necesite unlink
o rm
los resultados de find
, utilice su-delete
opción en su lugar.
find . -maxdepth 1 -type l -delete
Este comando encontrará todos los enlaces simbólicos ( -type l
) en el directorio actual (no en subdirectorios; *
no desciende a subdirectorios, así que supongo que esto es lo que desea) y los eliminará. El comportamiento predeterminado es no seguir enlaces simbólicos, por lo que los archivos originales no se verán afectados.
Respuesta3
Este comando buscará y eliminará todos los enlaces simbólicos en la carpeta actual, no recurrirá a subcarpetas e ignorará los archivos de puntos.
find . -maxdepth 1 -type l ! -name '.*' -delete