¿Cómo desvincular todos los enlaces simbólicos del directorio?

¿Cómo desvincular todos los enlaces simbólicos del directorio?

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 unlinko rmlos resultados de find, utilice su-deleteopció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

información relacionada