Publicada por alexnuvix em 26/04/2007 - 19:54h:
* alexnuvix usa Fedora

Boa Noite Galera,

Fiz uma pergunta dia 20/04/07 que é a seguinte :

Tenho uma dúvida quanto a utilização do comando "cp".

tenho uma necessidade de copiar apenas os arquivos criados por um determinado usuário :

segue o exemplo com varios arquivos contendo o mesmo nome :

[anunes@santos bk]$ ls -l sas35*
-rw-rw----+ 1 anunes batch 2456 Abr 20 00:00 sas35.004
-rw-rw----+ 1 bruno online 384 Abr 20 18:26 sas35.17.182632
-rw-rw----+ 1 cacia online 384 Abr 20 18:30 sas35.17.183045
-rw-rw----+ 1 bruno online 384 Abr 20 18:19 sas35.3.181929
-rw-rw----+ 1 bruno online 384 Abr 20 18:41 sas35.6.184145
-rw-rw----+ 1 apoiofrios online 384 Abr 20 21:39 sas35.6.213915
-rw-rw----+ 1 apoiofrios online 384 Abr 20 21:39 sas35.6.213919
-rw-rw----+ 1 apoiofrios online 384 Abr 20 21:39 sas35.6.213922
-rw-rw----+ 1 apoiofrios online 384 Abr 20 21:39 sas35.6.213926
-rw-rw----+ 1 apoiofrios online 384 Abr 20 21:39 sas35.6.213929
-rw-rw----+ 1 apoiofrios online 384 Abr 20 21:39 sas35.6.213932
----------------------------------------------------------------------------------

Seguinte,
Gostária de copiar os arquivos apenas do usuário "anunes" ou de um grupo especifico ex.: "batch"

Existe algum parametro para fazer a copia apenas do arquivo de um determinado usuário ?

obrigado.


E obtive a seguinte resposta :
-------------------------------------------------------------------------------------
Resposta de laleonel em 20/04/2007 - 23:34h:
* laleonel usa Fedora
* laleonel tem conceito: 8.7 Nota: 1.01.52.02.53.03.54.04.55.05.56.06.57.07.58.08.59.09.510.0
O que é isso?



Assim :

cp `ls -l|grep batch|cut -f9 -d" "` /destino

[]s


-------------------------------------------------------------------------------------

Mas continuo sem resultado positivo será que alguem pode me ajudar ???

Pois o comando acima enviado pelo amigo não obtivo o resultado esperado aparece a seguinte mensagem de erro:

cut: invalid byte, character or field list
Tente 'cut --help' para mais informaçao
grep: escrevendo saída: Pipe quebrado
grep: escrevendo saída: Pipe quebrado
grep: escrevendo saída: Pipe quebrado
grep: escrevendo saída: Pipe quebrado
grep: escrevendo saída: Pipe quebrado
grep: escrevendo saída: Pipe quebrado
grep: escrevendo saída: Pipe quebrado
grep: escrevendo saída: Pipe quebrado
grep: escrevendo saída: Pipe quebrado
grep: escrevendo saída: Pipe quebrado
grep: escrevendo saída: Pipe quebrado
grep: escrevendo saída: Pipe quebrado
cp: ficheiro de destino ausente
Tente 'cp --help' para mais informaçao


Valeu se alguem puder me ajudar.....



  
 
Resposta de code0 em 26/04/2007 - 21:18h:
* code0 usa Slackware
* code0 tem conceito: 7.8
 


Uma maneira de fazer isso e utilizando o comando find:

find diretorio -uid UID_DO_USUARIO
A sequencia de comandos seria a seguinte:

id usuario
uid=1000(usuario) gid=1000(usuario) ...

Isso me informou que o id do usuario e 1000

files = `find diretorio/ -uid 1000`

A variavel files tem todos os arquivos do usuario com uid 1000

for i in files
do
cp $i diretorio_destino
done

Feito
Se vc quiser verificar antes de copiar, troque o cp por echo:
for i in files
do
echo $i
done

[]'s



  


ATENÇÃO: Antes de contribuir com uma resposta, leia o artigo Qualidade de respostas e certifique-se de que esteja realmente contribuindo com a comunidade. Muitas vezes o ímpeto de contribuir nos leva a atrapalhar ao invés de ajudar.

Contribuir com resposta



CAPTCHA
[ Recarregar imagem ]

Digite o código acima:

  
* Nota: só é possível enviar respostas usuário que possui conta e esteja logado com ela, caso contrário sua mensagem será perdida.



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts