Script Cópia Arquivos - Dúvida

1. Script Cópia Arquivos - Dúvida

Jardel Fischer
jardelfi

(usa Red Hat)

Enviado em 06/05/2010 - 16:33h

Galera,

Como posso fazer a cópia via script do primeiro arquivo da lista de um diretório?


[[email protected] teste]# ll -ltr run/
total 32
-rw-r--r-- 1 root root 4 Mai 6 10:14 teste_C_1.txt
-rw-r--r-- 1 root root 4 Mai 6 10:14 teste_I.txt
-rw-r--r-- 1 root root 4 Mai 6 10:14 teste_I_1.txt
-rw-r--r-- 1 root root 4 Mai 6 10:15 teste_C_2.txt
-rw-r--r-- 1 root root 4 Mai 6 10:15 teste_C_3.txt
-rw-r--r-- 1 root root 4 Mai 6 10:15 teste_I_2.txt
-rw-r--r-- 1 root root 4 Mai 6 10:15 teste_I_3.txt
-rw-r--r-- 1 root root 6 Mai 6 14:31 teste22.txt

tipo:

pega o -rw-r--r-- 1 root root 4 Mai 6 10:14 teste_C_1.txt e move, depois o -rw-r--r-- 1 root root 4 Mai 6 10:14 teste_I.txt


  


2. Re: Script Cópia Arquivos - Dúvida

Jefferson Diego
Diede

(usa Debian)

Enviado em 06/05/2010 - 17:07h

ll? que comando é esse?
Bem, você pode combinar alguns comandos, mais ou menos assim:

ls run/| head -n 2| tail -n 1

Daí ficaria algo como:
cp $(ls run/| head -n 2| tail -n 1) /diretoriofinal/


3. Re: Script Cópia Arquivos - Dúvida

Marcos Paulo Ferreira
Daemonio

(usa Slackware)

Enviado em 07/05/2010 - 01:08h

Você quer copiar só o primeiro arquivo da lista ou todos? É só copiar para outro diretório ou você quer renomear o arquivo também?

t+



4. Re: Script Cópia Arquivos - Dúvida

Jardel Fischer
jardelfi

(usa Red Hat)

Enviado em 07/05/2010 - 08:57h

quero copiar somente o primeiro arquivo da lista


5. Re: Script Cópia Arquivos - Dúvida

Perfil removido
removido

(usa Nenhuma)

Enviado em 07/05/2010 - 16:38h

Este script recebe dois parametros:
1 - Diretorio a ser listado
2 - Nome para o novo arquivo

Escrevi em forma de função para facilitar o reaproveitamento de código

#!/bin/bash
# Por ./.ronin
# http://wolferineblues.com

_ren_pri(){

DIRETORIO=$1
DESTINO=$2

for ARQUIVO in $(ls $DIRETORIO); do

cp -v $ARQUIVO ${DESTINO}/${ARQUIVO};
exit;
done
}

_ren_pri $1 $2




6. Re: Script Cópia Arquivos - Dúvida

Perfil removido
removido

(usa Nenhuma)

Enviado em 07/05/2010 - 18:21h




#!/bin/bash

# Por ./.ronin
# http://wolferineblues.com

_ren_pri(){

DIRETORIO=$1
DESTINO=$2

for ARQUIVO in $(ls $DIRETORIO); do

cp -v $ARQUIVO ${DESTINO}/${ARQUIVO}\
&& exit\
|| echo "Não foi possivel copiar ${DIRETORIO}/${ARQUIVO} para $DESTINO";


done

}

_ren_pri $1 $2


exit


7. Re: Script Cópia Arquivos - Dúvida

Marcos Paulo Ferreira
Daemonio

(usa Slackware)

Enviado em 07/05/2010 - 19:17h

Se for só o primeiro arquivo da lista, pode ser que nem o Diede falou:

NOME=$(ls | head -n 2 | tail -n1)

ou

NOME=$(ls | sed -n '1p')

Se o ls normal aparecer colorido (alias para --color=on), talvez você queira
desabilitar o uso de cores utilizando a opção --color=no (O código da cor pode confundir o shell na hora de copiar o arquivo):

NOME=$(ls --color=no | sed -n '1p')

Agora é só copiar:

cp "$NOME" diretorio_destino


t+