Remover arquivos sem controle de versão de uma pasta

Posted Almost 12 years ago. Visible to the public.
svn status | grep '^[?~]' | awk '{print $2}' | xargs rm -rf

EDIT: A versão acima não é capaz de remover pastas e arquivos caso estes contenham espaços no nome. Isto é, caso por exemplo haja um arquivo de nome "Teste 2" fora de controle de versão, ao tentar removê-lo o comando acima captura apenas até o primeiro espaço, tentando apagar "Teste" e não conseguindo. Pior fica caso haja um outro arquivo de nome "Teste" na mesma pasta que esteja em controle de versão, pois ao tentar apagar "Teste 2" o comando não só não irão conseguir apagá-lo como apagará um outro arquivo por acidente. É preferível utilizar a versão abaixo, que embora muito maior e mais feia, faz o correto e apaga o arquivo "Teste 2" fora de controle de versão deixando um possível arquivo "Teste" da mesma pasta intacto.

echo rm -rf $(svn status | grep '^[?~]' | cut -c 9- | sed 's/^/\\"/' | sed 's/$/\\"/' | xargs) > temp.exe && echo -e "zg\n" | sudo -S chmod +x temp.exe && ./temp.exe && rm -f temp.exe

De qualquer forma, este último comando foi encapsulado no alias removeNaoVersionados para o ambiente de desenvolvimento da ZeroGlosa.

Frederico Galvão
Last edit
Over 11 years ago
Posted by Frederico Galvão to ZeroGlosa (2012-06-19 18:13)