¿Es posible verificar si existe un directorio y eliminarlo si existe, en Unix usando un solo comando? Tengo una situación en la que uso la tarea ANT 'sshexec' en la que puedo ejecutar solo un comando en la máquina remota. Y necesito verificar si el directorio existe y eliminarlo ...
106
mkdir -p
ignorará los errores si ya existen.Respuestas:
Suponiendo que
$WORKING_DIR
está configurado en el directorio ... esta línea debería hacerlo:(de lo contrario, simplemente reemplácelo con su directorio)
fuente
¿Por qué no usar
rm -rf /some/dir
? Eso eliminará el directorio si está presente; de lo contrario, no hará nada. A diferencia derm -r /some/dir
este tipo de comando, el comando no se bloqueará si la carpeta no existe.fuente
Tratar:
EDITAR : Esto funcionará si puede ejecutar bash en la máquina remota ...
EDITAR 2 : En bash,
[ -d something ]
verifica si hay un directorio llamado 'algo', devolviendo un código de éxito si existe y es un directorio. Encadenar comandos con && ejecuta el segundo comando solo si el primero tuvo éxito. Entonces[ -d somedir ] && command
ejecuta el comando solo si el directorio existe.fuente
[ -d /test ] && rmdir /test
(o rm -rf / test si no va a estar vacío y desea eliminar todo el contenido)Aquí hay otro trazador de líneas:
fuente