Confine os diretórios nos quais um script agirá

2

Por exemplo, tenho um script parecido com:

for i in */*/
do  
 cd $i
 cp POSCAR.ideal OSZICAR ..
 cd ..
 rm -r */
 cd ../;
done

para remover uma subpasta de uma pasta, mas com um pouco de imprevidência, por exemplo, o último ../ é escrito como ../../ , então todo o computador será apagado. O que é extremamente ruim! Então eu quero perguntar se existe um método para confinar com segurança o intervalo de operação de um terminal para que tal tragédia não apareça?

    
por user40780 02.10.2015 / 03:57

1 resposta

1

Como @Joe mencionou corretamente no comentário, é melhor reescrever um script tão perigoso. No entanto, se você quiser prosseguir com seu script atual, um método rudimentar é agrupar todas as suas operações rm em if conditions.

Então, por exemplo:

if pwd | grep <some-pattern>; 
then rm -r */; 
fi;

Você pode modificar a parte grep de acordo com suas necessidades. Meu ponto é que basta fazer uma simples verificação grep antes de emitir o comando rm .

    
por 04.10.2015 / 15:13