+ Responder ao Tópico



  1. #1

    Padrão Comando shell para manipular copiar arquivos!?

    Opa!!

    Eu tenho o seguinte caso, tenho uma pasta com varias pastas e sub-pastas dentro com varios arquivos cada...

    Eu queria copiar todos os arquivos que estao nessas pastas e sub-pastas e colocar numa pasta só.. sem sub-pastas.. só os arquivos numa pasta!

    se alguem souber!

    desde ja! VALEW!!

  2. #2

    Padrão

    Citação Postado originalmente por daniell Ver Post
    Opa!!

    Eu tenho o seguinte caso, tenho uma pasta com varias pastas e sub-pastas dentro com varios arquivos cada...

    Eu queria copiar todos os arquivos que estao nessas pastas e sub-pastas e colocar numa pasta só.. sem sub-pastas.. só os arquivos numa pasta!

    se alguem souber!

    desde ja! VALEW!!
    voce pode usar o cp com -r recursao e -p para preservar datas,etc. se quiser preservar as arvores de diretorio use tambem --parents crie o diretorio destino mkdir -p /var/tmp/backup cp de_onde para_onde cp -rp /home/fulano/* /var/tmp/backup/ cp -rp --parents =================================================== pode criar um script e dar a ele permissao de execucao com chmod +x nome_do_script #!/bin/bash # [email protected] # BASH SHOW com cygwin, tornando o XP mais eficiente e suportavel IMHO ! if [ $# = 0 ]; then echo "busca em f/BRUTO/ as imagens jpg" 1>&2 echo "busca_jpg Trecho" 1>&2 exit 1 fi # entra no diretorio destino cd /cygdrive/d/FOTOS/backup/ pwd # Procura no trecho $1 e copia para o diretorio corrente \.\/ criando subdiretorios -p mantendo datas find /cygdrive/f/BRUTO/$1/ -iname "*.jpg" -exec cp --parent -p {} \.\/ \; # Extra: produz uma lista e conta total de imagens find /cygdrive/f/BRUTO/$1/ -iname "*.jpg" > temp.txt echo "Total de imagens:" `cat temp.txt | wc -l`

  3. #3

    Padrão

    Daniel, você pode usar o seguinte comando:

    find /pasta/com/subpastas -type f -exec "cp {} /pasta/de/destino \;"

    ele vai fazer o que você quer.

  4. #4

    Padrão Copiar arquivos para diretorio unico

    Citação Postado originalmente por daniell Ver Post
    Opa!!

    Eu tenho o seguinte caso, tenho uma pasta com varias pastas e sub-pastas dentro com varios arquivos cada...

    Eu queria copiar todos os arquivos que estao nessas pastas e sub-pastas e colocar numa pasta só.. sem sub-pastas.. só os arquivos numa pasta!

    se alguem souber!

    desde ja! VALEW!!
    Ficou meio baguncado no post anterior pois estafa em formaro UNIX \n e nao em DOS \r\n. Transformei em DOS com o "todos" #!/bin/bash # [email protected] apresenta BASH SHOW no XP if [ $# = 0 ]; then echo "busca em f/BRUTO/ as imagens jpg" 1>&2 echo "busca_jpg Trecho" 1>&2 exit 1 fi # entra no diretorio destino cd /cygdrive/d/FOTOS/backup/ pwd # Procura no trecho $1 e copia para o diretorio corrente \.\/ criando subdiretorios -p mantendo datas find /cygdrive/f/BRUTO/$1/ -iname "*.jpg" -exec cp --parent -p {} \.\/ \; # Extra: produz uma lista e conta total de imagens find /cygdrive/f/BRUTO/$1/ -iname "*.jpg" > temp.txt echo "Total de imagens:" `cat temp.txt | wc -l` Omitindo as switchs -- parent e -p ele copia TUDO para o diretorio corrente ./ Atencao, espacos, aspas, tudo e' muito significativo para o Bash. Este ossinho {} sao duas chaves { } "*.jpeg" este par de aspas tambem eh importante. ./ seria o diretorio corrente mas para codificar os caracteres . / e ; usa-se a contra barra \ Esta linha faz o trabalho. $1 seria um parametro passado via linha de comando, no meu caso um subdiretorio em BRUTO. find /cygdrive/f/BRUTO/$1/ -iname "*.jpg" -exec cp --parent -p {} \.\/ \; []s julio menezes

  5. #5

    Padrão

    Coloca o seu script dentro de tags [ code ] e [ / code ] (sem os espaços)