Tengo un directorio en el que ejecuto un programa.
/usr/bin/my-dir
Necesito ejecutar el programa desde el directorio. Entonces debo ir a cd /usr/bin/my-dir ./my-program
Tengo un script que desde una máquina remota actualiza mi programa de esta manera: rm -rf /usr/bin/my-dir mv my-program /usr/bin/my-dir
El problema es cuando entré por ssh a la máquina y estoy en el directorio /usr/bin/my-dir. El script falla porque no puede ejecutar con éxito rm -rf /usr/bin/my-dir (borra todo el contenido). pero no el directorio)
¿Hay alguna forma de solucionar esto (por ejemplo, alguna forma de configurar el shell para permitir eliminar el directorio mientras estoy en él) o alguna otra solución? Actualmente salgo del directorio, ejecuto el script y luego vuelvo al directorio, pero tengo que hacer esto cientos de veces al día; debe haber una forma más eficiente de hacerlo.
Respuesta1
Por si a alguien le sirve de ayuda. Resulta que la forma en que funciona el shell es que si un directorio actual se elimina en una instancia diferente del shell y luego se vuelve a crear y se completa con archivos, el shell original mostrará un directorio vacío.
Para ver los archivos nuevamente, simplemente vaya
cd .
Esto llevó a resolver el problema original al no eliminar el directorio en sí (simplemente eliminar y reemplazar archivos específicos).