Erro no shell script

1. Erro no shell script

Tiago Alves de Oliveira
tiagofga

(usa Ubuntu)

Enviado em 24/05/2010 - 17:45h

Boa tarde pessoal.

Fiz um script mais ele está gerando erro, será que alguém pode me ajudar
O script é o seguinte:

cd $aluno;sudo rm -rf !(Documentos|Download|examples.desktop|Imagens|Modelos|Música|NVIDIA_GPU_Computing_SDK|Público|Vídeos|.netbeans*|.bash*|Área\ de \Trabalho)



  


2. Re: Erro no shell script

irado furioso com tudo
irado

(usa XUbuntu)

Enviado em 24/05/2010 - 17:59h

vc não diz qual o êrro :(

também mandou linha toda desposicionada, feia pra kct

de qualquer forma, imagino que vc queira eliminar um montão de folders/arquivos, então não precisa de tudo aquilo, pós "!", basta:

rm -fvR folder folder folder arquivo arquivo arquivo...

percebeu o "R" ali na linha?


3. Re: Erro no shell script

Tiago Alves de Oliveira
tiagofga

(usa Ubuntu)

Enviado em 24/05/2010 - 18:04h

cd $aluno;
sudo rm -rf !(Documentos|Download|examples.desktop|Imagens|Modelos|Música|NVIDIA_GPU_Computing_SDK|Público|Vídeos|.netbeans*|.bash*|Área\ de \Trabalho)

Estou tentando ignorar estas pastas, mas está gerando um erro que não era esperado o (.



4. Re: Erro no shell script

Marcos Paulo Ferreira
Daemonio

(usa Slackware)

Enviado em 24/05/2010 - 22:44h

Hum .. você quer apagar tudo menos essas pastas/arquivos né?

Não sei se tem uma expansão de glob do bash que retorna as entradas que NÃO casam, já que a sintaxe !(aa|bb|) não é válida...

Você pode listar os arquivos do diretório, filtrar com o grep e mandar a saída para o rm, assim:

NOMES="Documentos|Download|examples\.desktop|Imagens|Modelos|"
NOMES="$NOMES|Música|NVIDIA_GPU_Computing_SDK|"
NOMES="$NOMES|Público|Vídeos|\.netbeans.*|\.bash.*|Área de Trabalho"

Detalhes (glob para regexp):
examples.desktop --> vira --> examples\.desktop
.netbeans* --> vira --> \.netbeans.*
.bash* --> vira --> \.bash.*


Montando o monstro:

$ ls | grep -wEv "($NOMES)" | xargs -i echo '--> {} <--'

Botei um echo só para você ver se são esses arquivos que você quer deletar, se são, então utilize o comando:

$ ls | grep -wEv "($NOMES)" | xargs -i rm -rf '{}'

Teste aí e diga se é isso mesmo!
t+


5. Re: Erro no shell script

Bruno Rigolon
kalimbor

(usa Ubuntu)

Enviado em 28/05/2010 - 09:33h

Olá Daemonio, nunca usei estas opções do grep -> wEv , o que elas exatamente fariam?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts