[ Lista de argumentos muito long ] - Ler e processar arquivos em diretórios com grandes quantidade

1. [ Lista de argumentos muito long ] - Ler e processar arquivos em diretórios com grandes quantidade

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 29/03/2012 - 12:06h

Estou executando a leitura de diretórios em uma rede remota via ssh no qual chamo de espaço virtual.
O problema é que comandos como ls, find, for para pegar uma lista de todos arquivos nem sempre retornam dados.
Mesmo usando xargs costuma apresentar estouro. Cada pasta tem no mínimo 150.000 a 300.000 arquivos de texto aproximadamente.
Não quero ler todas as pastas ao mesmo tempo. Já vou me dar por satisfeito se conseguir fazer uma por vez bem feita.
Não consigo filtrar critérios porque preciso pegar os arquivos na ordem que eles entram no diretório. Não importa se a data da última alteração é antiga ou nova. Se foi alterado agora ou não. O mais importante é tentar pegar a relação de arquivos conforme a ordem que caíram lá dentro.

Ainda nem executei os comandos dentro do script, estou testando opções via linha de comando para tentar descobrir uma opção confiável e nem sempre será a mais rápida.


Melhor opção até agora quando funciona: time find . -type f -ls -name '*.txt' | xargs > lista_arq_tags.trb

real 1m40.193s
user 0m2.696s
sys 0m2.472s

Exemplo abaixo quando o comando funciona:

/media/virtual/procurar/arqs_tags_8


20966 4 -rwxrwxr-x 1 GaTux www 2033 Mar 26 18:40 ./arq_tags_186999404.txt
20967 4 -rwxrwxr-x 1 GaTux www 1775 Mar 26 23:04 ./arq_tags_435306502.txt
20968 4 -rwxrwxr-x 1 GaTux www 2232 Mar 27 01:48 ./arq_tags_464070146.txt
20969 4 -rwxrwxr-x 1 GaTux www 2184 Mar 26 23:00 ./arq_tags_247793561.txt
20970 4 -rwxrwxr-x 1 GaTux www 1944 Mar 26 23:30 ./arq_tags_359819601.txt
20971 4 -rwxrwxr-x 1 GaTux www 1854 Mar 26 23:00 ./arq_tags_40587696.txt
20972 4 -rwxrwxr-x 1 GaTux www 2097 Mar 27 00:29 ./arq_tags_108068330.txt
20973 4 -rwxrwxr-x 1 GaTux www 1978 Mar 26 19:20 ./arq_tags_228116164.txt
20974 4 -rwxrwxr-x 1 GaTux www 1934 Mar 26 21:58 ./arq_tags_87729349.txt
20975 4 -rwxrwxr-x 1 GaTux www 1911 Mar 26 23:24 ./arq_tags_153845672.txt
20976 4 -rwxrwxr-x 1 GaTux www 2170 Mar 26 19:45 ./arq_tags_378751570.txt
20977 4 -rwxrwxr-x 1 GaTux www 2106 Mar 26 22:21 ./arq_tags_420569921.txt
20978 4 -rwxrwxr-x 1 GaTux www 2043 Mar 26 20:52 ./arq_tags_377060627.txt
20979 4 -rwxrwxr-x 1 GaTux www 1862 Mar 27 01:54 ./arq_tags_386733491.txt
20980 4 -rwxrwxr-x 1 GaTux www 1879 Mar 27 03:17 ./arq_tags_364654716.txt
20981 4 -rwxrwxr-x 1 GaTux www 2093 Mar 26 22:54 ./arq_tags_488017917.txt
20982 4 -rwxrwxr-x 1 GaTux www 2156 Mar 26 22:38 ./arq_tags_311716549.txt
20983 4 -rwxrwxr-x 1 GaTux www 2032 Mar 26 21:14 ./arq_tags_497012787.txt
20984 4 -rwxrwxr-x 1 GaTux www 1898 Mar 26 22:07 ./arq_tags_238815135.txt
20985 4 -rwxrwxr-x 1 GaTux www 1982 Mar 26 19:39 ./arq_tags_75636656.txt
20986 4 -rwxrwxr-x 1 GaTux www 2159 Mar 27 00:25 ./arq_tags_188937249.txt
20987 4 -rwxrwxr-x 1 GaTux www 1763 Mar 27 02:05 ./arq_tags_310999058.txt
20988 4 -rwxrwxr-x 1 GaTux www 1842 Mar 26 19:29 ./arq_tags_134247188.txt
20989 4 -rwxrwxr-x 1 GaTux www 1958 Mar 27 00:47 ./arq_tags_331621256.txt
20990 8 -rwxrwxr-x 1 GaTux www 4668 Mar 26 22:45 ./arq_tags_309756929.txt
20991 4 -rwxrwxr-x 1 GaTux www 2035 Mar 26 18:31 ./arq_tags_461930380.txt
20992 4 -rwxrwxr-x 1 GaTux www 1888 Mar 26 22:17 ./arq_tags_274771577.txt
20993 4 -rwxrwxr-x 1 GaTux www 1991 Mar 26 22:46 ./arq_tags_242991309.txt
20994 4 -rwxrwxr-x 1 GaTux www 2024 Mar 26 22:44 ./arq_tags_168691120.txt
20995 4 -rwxrwxr-x 1 GaTux www 1935 Mar 26 21:52 ./arq_tags_195557193.txt
20996 8 -rwxrwxr-x 1 GaTux www 4330 Mar 26 23:46 ./arq_tags_350095235.txt
20997 4 -rwxrwxr-x 1 GaTux www 1995 Mar 27 09:42 ./arq_tags_466574252.txt
20998 4 -rwxrwxr-x 1 GaTux www 1943 Mar 26 20:13 ./arq_tags_203206125.txt


Apenas uma pequena parte do arquivo que estou gerando. Tem hora que fica vazio quando diz que tem muitos argumentos e tem hora que não consigo ver erro algum.

A minha ideia era tentar ler o diretório em etapas bem rápidas de 100 a 500 por vez. Após usar os arquivos eu vou apagando. Não tenho dúvida em usar de 100 a 500 por vez e nem apagar. Meu problema é como gerar este arquivo que contém todos os nomes de forma confiável sem falhar ?

O Linux não tem algum lugar que guarda um dicionário e ponteiros para qualquer arquivo gravado no HD para uma leitura rápida via DB ?
Andei pesquisando a opção updatedb mas ela não serve porque os dados estão em servidor remoto. Localmente o updatedb se atualizado deixa mesmo rápido a pesquisa dos nomes de arquivos. Passa a ser imediata o retorno da leitura. Acho que o problema maior é estar acessando os arquivos em um ambiente virtual.

Tem outra forma eficiente de fazer ?

Tô aceitando qualquer sugestão por mais maluca que seja desde que não demore mais de 20 segundos para gerar a relação de 200.000 arquivos lidos em um diretório via ssh. Eu quero os nomes deles e não dos dados kkkk

Agradeço de antemão por qualquer ajuda e a solução que encontrar vou compartilhar por aqui.

O MALEDETO DO ERRO QUE SEMPRE ESTÁ QUEBRANDO AS MINHAS PERNAS É: [ Lista de argumentos muito long ]
Tem hora que aparece e tem hora que não. Acontece AS VEZES em diretórios com mais de 150.000 arquivos. Sempre ocorre em diretórios com 500.000 arquivos.


#GA




  


2. MELHOR RESPOSTA

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 29/03/2012 - 16:27h

$ find . -type f -ls -name '*.txt' | xargs > lista_arq_tags.trb 


Ao invés de "sobrecarregar" o find, delegue uma parte do trabalho ao xargs! Tenta assim:

$ find . -type f -name '*.txt' | xargs  ls  -d > lista_arq_tags.trb 


E veja se funfa... =)

-- EDIT --

Acho que mesmo assim ainda ocorrerá problemas! Devido ao metacaractere '*'... Se ocorrer, tente desse jeito:

$ find . -type f -regextype posix-basic -regex '.*\.txt' | xargs  ls  -d 


3. Re: [ Lista de argumentos muito long ] - Ler e processar arquivos em diretórios com grandes quantidade

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 30/03/2012 - 06:26h

SMarcell escreveu:

$ find . -type f -ls -name '*.txt' | xargs > lista_arq_tags.trb 


Ao invés de "sobrecarregar" o find, delegue uma parte do trabalho ao xargs! Tenta assim:

$ find . -type f -name '*.txt' | xargs  ls  -d > lista_arq_tags.trb 


E veja se funfa... =)

-- EDIT --

Acho que mesmo assim ainda ocorrerá problemas! Devido ao metacaractere '*'... Se ocorrer, tente desse jeito:

$ find . -type f -regextype posix-basic -regex '.*\.txt' | xargs  ls  -d 


Vou testar as novas opções e retorno. Valeu SMarcell ;)






4. Re: [ Lista de argumentos muito long ] - Ler e processar arquivos em diretórios com grandes quantidade

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 30/03/2012 - 11:47h

SMarcell escreveu:

Ao invés de "sobrecarregar" o find, delegue uma parte do trabalho ao xargs! Tenta assim:

$ find . -type f -name '*.txt' | xargs  ls  -d > lista_arq_tags.trb 


E veja se funfa... =)



Funfou até 200.000 temos um avanço :)
Agora vou tentar a outra.


-- EDIT --

Acho que mesmo assim ainda ocorrerá problemas! Devido ao metacaractere '*'... Se ocorrer, tente desse jeito:

$ find . -type f -regextype posix-basic -regex '.*\.txt' | xargs  ls  -d 


[/quote]

Não consegui entender o -regextype posix-basic -regex e qual o motivo do uso. Só para constar rsrs. Detesto executar um comando sem saber o que está fazendo. Lendo o man do find não entendi nada rsrs.




5. Re: [ Lista de argumentos muito long ] - Ler e processar arquivos em diretórios com grandes quantidade

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 30/03/2012 - 16:17h

SMarcell escreveu:

-- EDIT --

Acho que mesmo assim ainda ocorrerá problemas! Devido ao metacaractere '*'... Se ocorrer, tente desse jeito:

$ find . -type f -regextype posix-basic -regex '.*\.txt' | xargs  ls  -d 


Funcionou para mais de 500.000 arquivos desta forma com algumas pequenas alterações. Da forma que você passou ele gerava o arquivo em ordem de nomes e preciso que seja na ordem física conforme os arquivos caíram e sempre pegar os mais antigos. Ficou assim.

 time find . -type f -regextype posix-basic -regex '.*\.txt' | xargs  ls -U -r > lista_args.trb 

real 3m15.898s
user 0m3.648s
sys 0m6.084s




Achei o tempo um pouco alto demais. Mas a única forma que conseguiu gerar um arquivo com mais de 500.000 arquivos foi esta, então a usarei.

Problema resolvido SMarcell obrigado ;)






6. Re: [ Lista de argumentos muito long ] - Ler e processar arquivos em diretórios com grandes quantidade

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 02/04/2012 - 22:00h

O problema em si relatado jaz solucionado, mas agora entrei em uma sinuca de bico e deve ser algo bem tolo mas estou quebrando a cabeça para resolver em uma única linha de comando.
Já tenho uma solução para o problema usando a POG de sempre. Queria uma saída mais limpa. Vamos ao problema.

Imagine que o conteúdo abaixo é um arquivo texto que tem de 150.000 a 500.000 linhas.
Preciso pegar uma quantidade de linhas de cada vez e gerar um outro arquivo.
Esta parte é fácil, usei o comando head dizendo quantas linhas deste arquivo eu preciso e envio para um novo arquivo.
O problema é que estas linha que enviei ao novo arquivo eu preciso retirar deste arquivo de 150.000 linhas.

arquivo completo abaixo em nosso teste tem 150.000



Completo: arq150000.txt
20966 4 -rwxrwxr-x 1 GaTux www 2033 Mar 26 18:40 ./arq_tags_186999404.txt
20967 4 -rwxrwxr-x 1 GaTux www 1775 Mar 26 23:04 ./arq_tags_435306502.txt
20968 4 -rwxrwxr-x 1 GaTux www 2232 Mar 27 01:48 ./arq_tags_464070146.txt
20969 4 -rwxrwxr-x 1 GaTux www 2184 Mar 26 23:00 ./arq_tags_247793561.txt
20970 4 -rwxrwxr-x 1 GaTux www 1944 Mar 26 23:30 ./arq_tags_359819601.txt
20971 4 -rwxrwxr-x 1 GaTux www 1854 Mar 26 23:00 ./arq_tags_40587696.txt
20972 4 -rwxrwxr-x 1 GaTux www 2097 Mar 27 00:29 ./arq_tags_108068330.txt
20973 4 -rwxrwxr-x 1 GaTux www 1978 Mar 26 19:20 ./arq_tags_228116164.txt
20974 4 -rwxrwxr-x 1 GaTux www 1934 Mar 26 21:58 ./arq_tags_87729349.txt
20975 4 -rwxrwxr-x 1 GaTux www 1911 Mar 26 23:24 ./arq_tags_153845672.txt
20976 4 -rwxrwxr-x 1 GaTux www 2170 Mar 26 19:45 ./arq_tags_378751570.txt
20977 4 -rwxrwxr-x 1 GaTux www 2106 Mar 26 22:21 ./arq_tags_420569921.txt
20978 4 -rwxrwxr-x 1 GaTux www 2043 Mar 26 20:52 ./arq_tags_377060627.txt
20979 4 -rwxrwxr-x 1 GaTux www 1862 Mar 27 01:54 ./arq_tags_386733491.txt
20980 4 -rwxrwxr-x 1 GaTux www 1879 Mar 27 03:17 ./arq_tags_364654716.txt
20981 4 -rwxrwxr-x 1 GaTux www 2093 Mar 26 22:54 ./arq_tags_488017917.txt
20982 4 -rwxrwxr-x 1 GaTux www 2156 Mar 26 22:38 ./arq_tags_311716549.txt
20983 4 -rwxrwxr-x 1 GaTux www 2032 Mar 26 21:14 ./arq_tags_497012787.txt
20984 4 -rwxrwxr-x 1 GaTux www 1898 Mar 26 22:07 ./arq_tags_238815135.txt
20985 4 -rwxrwxr-x 1 GaTux www 1982 Mar 26 19:39 ./arq_tags_75636656.txt
20986 4 -rwxrwxr-x 1 GaTux www 2159 Mar 27 00:25 ./arq_tags_188937249.txt
20987 4 -rwxrwxr-x 1 GaTux www 1763 Mar 27 02:05 ./arq_tags_310999058.txt
20988 4 -rwxrwxr-x 1 GaTux www 1842 Mar 26 19:29 ./arq_tags_134247188.txt
20989 4 -rwxrwxr-x 1 GaTux www 1958 Mar 27 00:47 ./arq_tags_331621256.txt
20990 8 -rwxrwxr-x 1 GaTux www 4668 Mar 26 22:45 ./arq_tags_309756929.txt
20991 4 -rwxrwxr-x 1 GaTux www 2035 Mar 26 18:31 ./arq_tags_461930380.txt
20992 4 -rwxrwxr-x 1 GaTux www 1888 Mar 26 22:17 ./arq_tags_274771577.txt
20993 4 -rwxrwxr-x 1 GaTux www 1991 Mar 26 22:46 ./arq_tags_242991309.txt
20994 4 -rwxrwxr-x 1 GaTux www 2024 Mar 26 22:44 ./arq_tags_168691120.txt
20995 4 -rwxrwxr-x 1 GaTux www 1935 Mar 26 21:52 ./arq_tags_195557193.txt
20996 8 -rwxrwxr-x 1 GaTux www 4330 Mar 26 23:46 ./arq_tags_350095235.txt
20997 4 -rwxrwxr-x 1 GaTux www 1995 Mar 27 09:42 ./arq_tags_466574252.txt
20998 4 -rwxrwxr-x 1 GaTux www 1943 Mar 26 20:13 ./arq_tags_203206125.txt


usando o comando head eu separei 50.000 registros. Em nosso exemplo na tela vamos dizer que forma 5 aqui no forum.



filtrado: arq50000.txt
20966 4 -rwxrwxr-x 1 GaTux www 2033 Mar 26 18:40 ./arq_tags_186999404.txt
20967 4 -rwxrwxr-x 1 GaTux www 1775 Mar 26 23:04 ./arq_tags_435306502.txt
20968 4 -rwxrwxr-x 1 GaTux www 2232 Mar 27 01:48 ./arq_tags_464070146.txt
20969 4 -rwxrwxr-x 1 GaTux www 2184 Mar 26 23:00 ./arq_tags_247793561.txt
20970 4 -rwxrwxr-x 1 GaTux www 1944 Mar 26 23:30 ./arq_tags_359819601.txt


A próxima operação eu preciso que o arquivo Completo: arq150000.txt fique com 50.000 linhas a menos. Justamente as linhas que estão no arquivo filtrado: arq50000.txt

Tentei com o comando grep usando -i -v conforme um exemplo que vi no livro do Aurélio, mas sem sucesso.

Para quebrar o galho, fiz uma POG que gera um novo arquivo usando o comando while após ele ficar sabendo que já percorreu 50.000 linhas, mas este processo é muito moroso para gerar as outras 100.000 para o novo arquivo retirando as 50.000 que já usei.

Queria tentar com um único comando gerar o arquivo final com 100.000. Talvez o sed fosse o comando, mas não encontrei um opção para gerar um novo arquivo com base em uma linha em diante. O awk talvez fosse a solução porque ele talvez faça um while interno.

Continuo tentando uma saída elegante, mas se alguém tiver uma luz por favor ;)

Já queimei uma pá de "neurônios hoje" e nada de achar uma solução :)







7. Re: [ Lista de argumentos muito long ] - Ler e processar arquivos em diretórios com grandes quantidade

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 03/04/2012 - 01:48h

Solução ridícula usando sed

$ sed '1,50000d' arq150000.txt > MeuNovoArqCom100000linhas.txt  


d = delete. Só preciso que o script saiba o valor que desejo apagar e a solução fica em uma linha.



8. Re: [ Lista de argumentos muito long ] - Ler e processar arquivos em diretórios com grandes quantidade

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 22/05/2012 - 00:08h

Retomando o tópico.

Na hora de transferir na máquina de produção o ambiente esta diferente e não vou conseguir me posicionar no diretório. Até posso fazer alterando as funções. Se tiver uma forma fácil de fazer a alteração, agradeço a ajuda.


time find . -type f -regextype posix-basic -regex '.*\.txt' | xargs ls -U -r > lista_args.trb


Estou quebrando tudo para simplificar. Variáveis públicas.

folder_root_canais="/pasta_virtual/services/IC__07/canais" #Raiz dos canais.
str_canal="001" #Apenas o canal 001.
prefix_string_files="IC__" #Prefixo do nome que estará dentro do diretório que preciso.
sufixo_string_files="*.txt" #Sufixo com metacaracter * e a extensão .txt para busca.
ArqTmpCanal="Service_IC_Canal_${str_canal}.txt" # Nome do arquivo que vai receber o resultado da pesquisa.



Tentei escapar do find usando ls, mas o erro Lista de argumentos muito long retornou.
As variáveis aparecem com nomes diferentes porque já foram passadas como parâmetros dentro da função que faz a execução.

ls -ltr \
${lc_folder_root_canais}/${lc_canal}/${lc_prefix_string_files}${lc_sufixo_string_files} | \
sed "s/.*${lc_prefix_string_files}/${lc_prefix_string_files}/" \
> ${lc_ArqSaidaCanal}


Preciso agora transformar este comando ls para o find igual a este porque consegue ler mais de 300.000 arquivos em um diretório.


time find . -type f -regextype posix-basic -regex '.*\.txt' | xargs ls -U -r > ${lc_ArqSaidaCanal}


Já percebi que será complicado porque vou ter que escapar os metacaracteres.

Sugestões ?



9. Re: [ Lista de argumentos muito long ] - Ler e processar arquivos em diretórios com grandes quantidade

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 22/05/2012 - 00:47h

Problema:
Como não sei usar o comando find buscando o conteúdo de um diretório, fiz o cd até ir ao local. cd /pasta_virtual/services/IC__07/canais

Apliquei o comando:

find . -type f -regextype posix-basic -regex '.*\.txt'

Que me retorna a listagem abaixo.

Parcial da listagem.

./IC__193281.txt
./IC__475899.txt
./IC__987547.txt
./IC__208802.txt
./IC__873919.txt
./IC__506008.txt
./IC__775018.txt
./IC__406676.txt
./IC__134083.txt
./IC__470624.txt
./IC__819831.txt
./IC__837681.txt
./IC__899534.txt
./IC__283478.txt
./IC__204373.txt
./IC__213416.txt
./IC__510064.txt
./IC__345544.txt
./IC__527930.txt
./IC__504362.txt
./IC__438508.txt
./IC__523525.txt
./IC__368632.txt
./IC__222761.txt
./IC__791861.txt
./IC__757984.txt
./IC__652544.txt
./IC__721782.txt
./IC__683529.txt
./IC__356168.txt
./IC__264404.txt
./IC__622641.txt
./IC__945468.txt
./IC__462741.txt
./IC__411210.txt
./IC__212353.txt
./IC__706306.txt
./IC__860590.txt
./IC__518623.txt
./IC__454773.txt
./IC__225879.txt
./IC__866641.txt
./IC__383695.txt
./IC__506676.txt
./IC__838281.txt
./IC__885100.txt
./IC__803363.txt
./IC__291795.txt
./IC__183628.txt
./IC__247470.txt


Após ver que funcionava, apliquei o xargs

find . -type f -regextype posix-basic -regex '.*\.txt' | xargs ls -ltr IC__6*.txt  


Funciona, ele continua retornando a lista, mas agora ordenada da forma que quero, e NÃO FILTRA os arquivos iniciados com IC__6, trazendo a lista enorme completa com 455.000 arquivos.
Tentei várias formas absurdas rsrs e consegui fazendo assim.


find . -type f -regextype posix-basic -regex '.*\.txt' | xargs ls -ltr | ls -ltr IC__6*.txt


Mas não testando no diretório onde tem 455.000 arquivos porque demora muito rsrs.
Queria entender porque o primeiro ls funciona mas não filtra. Quando aplico o pipe no segundo e retiro do primeiro ls os dados adicionais tudo funciona bem.


-rw-r--r-- 1 gatux www-data 2098 Mai 17 11:57 IC__621284.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 12:00 IC__629614.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 12:01 IC__621420.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 12:02 IC__634284.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 12:10 IC__634279.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 12:11 IC__640710.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 12:27 IC__656379.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 12:53 IC__661248.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 13:07 IC__628192.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 13:15 IC__630015.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 13:17 IC__648086.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 13:39 IC__659144.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 13:43 IC__664001.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 13:48 IC__675960.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 13:53 IC__637487.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 13:56 IC__658339.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 13:59 IC__679036.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 14:01 IC__688529.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 14:04 IC__660601.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 14:14 IC__676528.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 14:15 IC__694322.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 14:16 IC__613700.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 14:32 IC__608221.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 14:35 IC__637827.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 14:37 IC__637901.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 14:43 IC__620312.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 14:46 IC__661404.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 14:51 IC__671650.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 14:55 IC__683201.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 15:00 IC__649945.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 15:20 IC__632641.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 15:25 IC__682035.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 15:44 IC__690798.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 15:55 IC__615544.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 15:56 IC__686852.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 16:10 IC__695871.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 16:11 IC__637261.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 16:16 IC__674663.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 16:17 IC__681328.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 16:20 IC__621833.txt
-rw-r--r-- 1 gatux www-data 2098 Mai 17 16:23 IC__630070.txt


Existe outra forma de fazer ?








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts