Pular para o conteúdo

Mover lista [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar
01 02

13. Re: Mover lista [RESOLVIDO]

Enviado em 25/11/2015 - 13:41h

Deu certo em alguns arquivos e outros não, acho que por conta de caracteres:

/move.sh: line 91: erro de sintaxe próximo do `token' não esperado `('
./move.sh: line 91: `mv 20131114_111924(0).jpg /home/user/bb'



conectadohost escreveu:

Fiz da seguinte forma e funcionou no CentOs acredito que funcione no fedora

cat /home/user/aa/lista.txt | awk -F " " '{print "mv "$1" /home/user/bb"}' > /home/user/aa/lista1.txt

depois vc cria um script com qualquer nome, tipo movemeuarquivo.sh

pode ser assim cat /home/user/aa/lista1.txt > /bin/movemeuarquivo.sh


coloca isso antes de tudo no script movemeuarquivo.sh

#!/bin/bash
SHELL=/bin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/bin

cd /home/user/aa

salva
da permissão chmod 777 /bin/movemeuarquivo.sh

e executa movemeuarquivo.sh

Explicando: o que fizemos foi inserir o MV antes dos arquivos que serão movidos, e acrescentamos o local para onde vão ser movidos.

Responder tópico

14. Re: Mover lista

Enviado em 25/11/2015 - 14:19h

Assumindo que cada linha do arquivo texto contenha todo o caminho de cada arquivo, como no exemplo:

$ cat /home/user/lista.txt
/home/user/origem/abc.jpg
/home/user/origem/def.jpg
/home/user/origem/fgi.jpg


Com a ajuda do xargs, você pode fazer:

$ cat /home/user/lista.txt | xargs mv -t /home/user/destino 


Mas se no arquivo texto apenas conter o nome dos arquivos, eu não sei como concatenar o caminho com a saída do cat, nesse caso, então colocaria algum "cd /home/user/origem" antes de executar o comando acima.

Ou você pode fazer:

$ while read file; do mv "/home/user/origem/$file" /home/user/destino/; done < lista.txt  

15. res:Mover lista

Enviado em 25/11/2015 - 14:44h

Olá,
sim exatamente os caracteres dos nomes de alguns arquivos pode causar esse erro
você pode renomear alguns arquivos e executar novamente o script

RBZ escreveu:

Deu certo em alguns arquivos e outros não, acho que por conta de caracteres:

/move.sh: line 91: erro de sintaxe próximo do `token' não esperado `('
./move.sh: line 91: `mv 20131114_111924(0).jpg /home/user/bb'



conectadohost escreveu:

Fiz da seguinte forma e funcionou no CentOs acredito que funcione no fedora

cat /home/user/aa/lista.txt | awk -F " " '{print "mv "$1" /home/user/bb"}' > /home/user/aa/lista1.txt

depois vc cria um script com qualquer nome, tipo movemeuarquivo.sh

pode ser assim cat /home/user/aa/lista1.txt > /bin/movemeuarquivo.sh


coloca isso antes de tudo no script movemeuarquivo.sh

#!/bin/bash
SHELL=/bin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/bin

cd /home/user/aa

salva
da permissão chmod 777 /bin/movemeuarquivo.sh

e executa movemeuarquivo.sh

Explicando: o que fizemos foi inserir o MV antes dos arquivos que serão movidos, e acrescentamos o local para onde vão ser movidos.




---> A arte de programar consiste na arte de organizar e dominar a complexidade.
---> Dijkstra <---

16. Re: Mover lista [RESOLVIDO]

Enviado em 27/11/2015 - 13:59h

conectadohost foi exatamente o que fiz, renomeei os arquivos (pois eram poucos) e finalizou.

E se não fossem poucos !?
Poderia abrir e substituir caracteres de uma só vez, e executar novamente !


wellington_r, como eu já terminei, não vou conseguir testar o que você passou, mas pelo que disse sobre concatenar, foi exatamente o que o conectadohost fez, concatenando todo comando.

Valeu galera !

17. res:Mover lista

Enviado em 27/11/2015 - 14:07h

Olá,
caso fosse muitos arquivos para renomear acho que poderia ser feito com o comando o SED
Que bom que podemos ajuda-lo,
se for possível marque a resposta como a melhor resposta e não esqueça de marcar seu post como resolvido.

abraços e até a próxima.

RBZ escreveu:

conectadohost foi exatamente o que fiz, renomeei os arquivos (pois eram poucos) e finalizou.

E se não fossem poucos !?
Poderia abrir e substituir caracteres de uma só vez, e executar novamente !


wellington_r, como eu já terminei, não vou conseguir testar o que você passou, mas pelo que disse sobre concatenar, foi exatamente o que o conectadohost fez, concatenando todo comando.

Valeu galera !
---> A arte de programar consiste na arte de organizar e dominar a complexidade.
---> Dijkstra <---
01 02

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder