Stavo scrivendo alcuni script e ho scritto qualcosa del genere
ARTIFACTS="/SOME/PATH"
[ -d $ARTIFCATS ] && rm -rf $ARTIFACTS/*
Quello che è successo è che per stupidità ho eseguito la seconda riga senza eseguire la prima. Si è scoperto che [-d ""] restituisce true e l'espressione diventa
rm -rf /*
Fortunatamente era solo una macchina di prova e non ero un sudo, ma sebbene avessi perso alcuni dati
La mia domanda è: perché [-d ""] restituisce true ?? la documentazione indica chiaramente che esiste un percorso ed è una cartella
Ho risolto il problema utilizzando
[ -e $ARTIFACTS ]
che sembra funzionare
Saluti
rm -rf $ARTIFACTSsenza /*. Questo eliminerebbe anche la $ARTIFACTSdirectory, il che va bene, perché se voglio essere sicuro che esista prima di inserire qualcosa in esso, eseguirò mkdir -p $ARTIFACTScomunque. Eliminerà anche i file nascosti all'interno $ARTIFACTS, il che va bene, perché non scriverei rm -rf $ARTIFACTS/*se $ARTIFACTScontenesse qualcosa che volevo salvare.