Eu tenho um diretório no qual executo um programa.
/usr/bin/my-dir
Eu preciso executar o programa dentro do diretório, então devo ir cd /usr/bin/my-dir ./my-program
Eu tenho um script que, de uma máquina remota, atualiza meu programa assim: rm -rf /usr/bin/my-dir mv my-program /usr/bin/my-dir
O problema é quando eu fiz o ssh na máquina e estou no diretório /usr/bin/my-dir O script falha porque não consegue executar com sucesso rm -rf /usr/bin/my-dir (ele exclui todo o conteúdo mas não o diretório)
Existe alguma maneira de contornar isso (por exemplo, alguma maneira de configurar o shell para permitir a exclusão do diretório enquanto estou nele?) Ou alguma outra solução? Atualmente eu saio do diretório, executo o script e depois volto para o diretório, mas tenho que fazer isso centenas de vezes por dia - deve haver uma maneira mais eficiente de fazer isso.
Responder1
Apenas no caso de ser útil para alguém. Acontece que a maneira como o shell funciona é que, se um diretório atual for excluído em uma instância diferente do shell e for recriado e preenchido com arquivos, o shell original mostrará um diretório vazio.
Para ver os arquivos novamente, basta ir
cd .
Isso levou à solução do problema original, não excluindo o diretório em si (apenas excluindo e substituindo arquivos específicos).