[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Res: [shell-script] Unir FIND+XARGS +CP ou MV num único comando
From: |
Wagner Brasileiro |
Subject: |
Res: [shell-script] Unir FIND+XARGS +CP ou MV num único comando |
Date: |
Wed, 2 Feb 2011 04:37:45 -0800 (PST) |
Só rindo mesmo!!! Não é que funcionou perfeitamente!!!
Estava fugindo desta construção justamente por saber do problema de estouro de
pilha quando se passa muitos argumentos ao exec do find, e no meu caso estou
falando de 382.
Bem agradeço pela idéia, mas sabe dizer o que estava acontecendo, ou onde
estava
errando? Quem souber por favor me diga.
Espero que os moderadores não encarem isso como abuso ou algo parecido,
gostaria
de entender o que estava acontecendo.
Atenciosamente,
Wagner Brasileiro
________________________________
De: "®i©@®ÐØ" <address@hidden>
Para: address@hidden
Enviadas: Quarta-feira, 2 de Fevereiro de 2011 10:14:51
Assunto: Re: [shell-script] Unir FIND+XARGS +CP ou MV num único comando
se puder ser somente com um comando, que tal:
find MP3-TMP/ -type f -name "*.mp3" -exec cp -pv {} ~/resultado/ \;
;)
Em 2 de fevereiro de 2011 09:55, Wagner Brasileiro <
address@hidden> escreveu:
>
>
> Bom dia Senhores,
>
> estou tentando construir uma linha de comando que facilite minha vida,
> tenho um
> diretório com uma estrutura de subdiretórios criados onde existem arquivos
> MP3
> organizados por nome da banda, nome do disco e e por último os arquivos
> propriamente dito. O que eu pretendo é ler esses arquivos em sua estrutura
> de
> subdiretórios como find, repassar esses nomes como par6ametros pelo xargs
> ao cp
> e pronto. Parece simples e eu creio que já fiz isso algumas vezes com
> arquivos
> simples, mas neste caso tenho caracteres estranhos nos nomes dos arquivos
> como
> espaços, apóstrofes e parênteses e ainda por cima a lista está parecendo
> maior
> do que o xargs suporta, Já com os caracteres especiais nem sei como ele
> está
> tratando isso, normalmente quando uso as opções d -0 ou -r do xargs as
> mensagens
> de erro referentes a esses caracteres somem.
> Um dos problemas que encontrei foi os espaços entre os nomes dos arquivos
> onde
> tive que usar ou a Opção -0 do xargs ou -r. Já o comando cp sempre dá
> estouro
> quando uso essas opções, me retornando: "Nome de arquivo muito longo" Já
> tentei
> "escapar"parte da expressão para ver se ele estava tentando usar tudo como
> um
> único arquivo.
>
> Dentre as diversas tentativas que fiz as que mais me pareceram corretas e
> mesmo
> assim deram erradas foram:
>
> find MP3-TMP/ -type f -name "*.mp3" | xargs -0 -r cp -v -p
> --target-directory=/root/resultado
>
> find MP3-TMP/ -type f -name "*.mp3" | xargs -0 -I {} mv {} ~/resultado/
>
> find MP3-TMP/ -type f -name "*.mp3" | xargs -r -0 -i bash -c "cp {}
> ~/resultado/" ==> Já essa linha me dá dois tipos de erros diferentes, alega
> em
> vários arquivos que não foram encontrados, analisando a linha de saída com
> um
> simples echo, percebi que são justamente os arquivos que possuem caracteres
>
> especiais, mas engraçado que na linha 74 ele me dá a seguinte mensagem:
>
> bash: -c: linha 74: erro de sintaxe próximo do `token' não esperado `('
> bash: -c: linha 74: `MP3-TMP/Phil Collins/Serious Hits...Live!/02 Against
> All
> Odds (Take a Look at Me Now).mp3'
>
> Sendo que ele já passou por outros arquivos a esta altura com parênteses e
> outros caracteres especiais. termina o comando e sai sem copiar um arquivo
> sequer.
>
> Acredito que esteja errando algo bobo, ou se realmente for estouro da pilha
> de
> argumentos existe como acertar isso? Fico grato por qualquer ajuda.
>
> Wagner Brasileiro
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
--
-------------------------------------------------------------------------------------
ATENÇÃO: EVITE QUE SPAMMERS CAPTURE CONTATOS DE SUA LISTA,
SEMPRE QUE POSSÍVEL REMOVA OS EMAILS DO REMETENTE E ENVIE EM (COO- CÓpia
Oculta) PARA SEUS CONTATOS.
;)
A Graça do nosso Senhor Jesus Cristo seja contigo. (1ªTs 5.28)
The grace of our Lord Jesus Christ be with you. (1ªTs 5.28)
Jesus te ama, aceite-O! Jesus loves you, accept you Him!
®i©@®ÐØ
[As partes desta mensagem que não continham texto foram removidas]
------------------------------------
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl,
C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos
[As partes desta mensagem que não continham texto foram removidas]