Comando cp com uma lista de files

1. Comando cp com uma lista de files

Marcello de Souza Silva
marcellotrue

(usa Ubuntu)

Enviado em 09/10/2014 - 21:46h

Pessoal, estou com um problema em um exercicio, eh para copiar varios arquivos de uma vez ultilizando variavel, so que nao consegui fazer.. tentei da sequinte maneira:

esse comando: files=`ls -ltr | grep -v ^d`
foi feito para selecionar apenas os arquivos do sistemas e nao os diretorios

Joguei a variavel criada aqui: cp -r $files ~/temp
quando executo da um erro: cp: invalid option -- 'w'


O que posso fazer?


  


2. Re: Comando cp com uma lista de files

Fábio Berbert de Paula
fabio

(usa Debian)

Enviado em 09/10/2014 - 22:02h

O comando "ls -ltr" vai retornar várias colunas com informações do arquivo e não somente o nome do arquivo. Só aí já não funciona:


-rw-r--r-- 1 fabio fabio 991 Fev 3 2010 index.html


Ou melhor, só funcionaria se você tratasse a saída do grep com um "cut".

Utilize o find, vai ficar mais fácil. Exemplo:


FILES=`find . -maxdepth 1 -type f`
echo $FILES | xargs -I{} cp {} /tmp


O gabarito está aí, agora fica de dever de casa dar um "man find" e "man xargs" pra descobrir como os comandos funcionam :)




3. Re: Comando cp com uma lista de files

Marcello de Souza Silva
marcellotrue

(usa Ubuntu)

Enviado em 10/10/2014 - 06:42h

entao, estou tentando imprimir os arquivos atraves de um for..mas sempre imprime todos.. e quando usei array deu errado. Como posso fazer?


files=`ls -t`

for n in $files
do
if [[ "$i" < "$2" ]]
then
echo `cp $files[$i] ~/tempo`
((i++))
else
break
fi
done
do
if [[ "$i" < "$2" ]]
then
echo `cp $files[$i] ~/tempo`
((i++))
else
break
fi
done






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts