É possível verificar se existe um diretório e deletar se existir, no Unix usando um único comando? Eu tenho uma situação em que uso a tarefa ANT 'sshexec' onde posso executar apenas um único comando na máquina remota. E eu preciso verificar se o diretório existe e excluí-lo ...
106
mkdir -p
irá ignorar os erros se já existirem.Respostas:
Supondo que
$WORKING_DIR
esteja definido como o diretório ... este one-liner deve fazer isso:(caso contrário, apenas substitua pelo seu diretório)
fonte
Por que não apenas usar
rm -rf /some/dir
? Isso removerá o diretório se estiver presente, caso contrário, não faça nada. Ao contráriorm -r /some/dir
deste tipo de comando não irá travar se a pasta não existir.fonte
Experimentar:
EDITAR : Isso funcionará se você puder executar o bash na máquina remota ....
EDIT 2 : No bash,
[ -d something ]
verifica se existe um diretório chamado 'algo', retornando um código de sucesso se existir e for um diretório. O encadeamento de comandos com && executa o segundo comando apenas se o primeiro for bem-sucedido. Portanto,[ -d somedir ] && command
executa o comando apenas se o diretório existir.fonte
[ -d /test ] && rmdir /test
(ou rm -rf / test se não estiver vazio e você quiser excluir todo o conteúdo)Aqui está outro forro:
fonte