Use o comando find:
find . -type d -name .svn -exec rm -rf {} \;
{} é o nome do arquivo, -tipo d significa diretórios.
Aviso: use o comando find e rm juntamente com cuidado!
Eu tenho a seguinte estrutura:
/.svn
/bla/.svn
/hello/.svn
/bla/bla/bla/.svn
... etc
Eu quero excluir todas as pastas .svn. Como faço isso?
NÃO é:
rm -rf .svn
Nas janelas, você usa o gatilho / s. Como você faz isso linux?
Use o comando find:
find . -type d -name .svn -exec rm -rf {} \;
{} é o nome do arquivo, -tipo d significa diretórios.
Aviso: use o comando find e rm juntamente com cuidado!
find . -depth -type d -name .svn -exec rm -rf {} \;
Diferenças para outras soluções já apresentadas:
sem -depth
, o comando tentará recursar para o diretório .svn depois de excluí-lo, resultando em mensagens de erro.
sem -type d
(o que limita sua pesquisa a diretórios), você também excluiria arquivos do nome dado. (Provavelmente você não terá nenhum, mas você não deve se arriscar ao fazer uma combinação de "find" e "rm".)
Se a sua necessidade for remover diretórios .svn
e não uma solução mais geral para remover diretórios com nomes específicos, considere usar svn export :
$ svn export . /tmp/new-dir
Isso criará uma cópia da área de trabalho svn no diretório atual em um novo diretório em /tmp/new-dir
. Você não precisa criar o novo diretório primeiro. O Subversion cuidará disso para você.
find . -name .svn -exec rm -rf {}\;
Deve funcionar para você.
Ele primeiro encontra todas as pastas nomeadas .svn
Em seguida, executando rm -rf
para cada pasta encontrada.
Resultado:
Não mais pastas .svn
Tags linux file-management