Como apagar ficheiros na consola de modo seguro?

Iniciado por andrejbo, 20 de Agosto de 2007, 08:16

tópico anterior - próximo tópico

fabiovalinhos

Citação de: clcampos online 23 de Agosto de 2007, 00:07
Citação de: fabiovalinhos online 22 de Agosto de 2007, 23:44
Citação de: Mythus online 22 de Agosto de 2007, 21:03...HUAHAUHAUAUA minha nossa! Criamos um monstro! :D

Meu deus, o que vocês fizeram com o tópico do cara. Virou um shell script.

Imagino se ele perguntar como configurar algo, o tamanho que vai vir o próximo script.
eheheh
7355

Claro que ele não pediu nada disto, e que virou uma brincadeira minha e do Mythus, mas se ele implementar o script como esta tenho certeza que não perderia nada, e seria sim uma remoção segura.

Eu sei. Só estou jogando uma pilha.
Deveria ter colocado uns ícons como esse ( :D ) para mostrar que eu estava em um momento de descontração.


73
sudo dpkg no seu quadrado ...sudo dpkg no seu quadrado ...
http://www.youtube.com/watch?v=tHmrq0FtczM

clcampos

Citação de: Mythus online 22 de Agosto de 2007, 21:03
Agora entendi o que você quis dizer! Para que o arquivo a ser movido de uma partição vá para o .Trash-$USER daquela partição!

Também entendi o problema de você montar em outros lugares, daí pensei em usar o mount para saber onde criar o .Trash-$USER e a melhor idéia que tive foi:

mkdir  `mount | grep $parametro |cut -d \  -f 3`"/.Trash-$USER"

Tudo bem, criar esta pasta ai é algo tranquilo, com a estrutura que já existe não tem nenhum segredo.

Citar....
Agora o que me deu um nó na cabeça agora é o cara fazer algo do tipo:

rm /media/hda1/windows/temp/*  ../hda5/filme.avi ~/foto.da.sogra.tiamate.jpg setup.exe


O que exatamente aqui te deu um nó na cabeça?
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Mythus

Citação de: clcampos online 23 de Agosto de 2007, 15:57
Citação de: Mythus online 22 de Agosto de 2007, 21:03
Agora o que me deu um nó na cabeça agora é o cara fazer algo do tipo:

rm /media/hda1/windows/temp/*  ../hda5/filme.avi ~/foto.da.sogra.tiamate.jpg setup.exe


O que exatamente aqui te deu um nó na cabeça?

A versão instável faz o teste de localização do arquivo a cada vez ou faz a linha toda? Porque do jeito que eu fiz aqui ele só retorna o caminho do primeiro arquivo a ser "deletado".

Outra coisa, estive conversando sobre nosso "remover_seguro" e ele levantou uma questão interessante: a grande maioria (ou quase a totalidade) dos instaladores e scripts usam o rm para limpar os diretórios, substitui-lo no path não causaria problemas? Acredito que sim, não?

Até!
Abraços,
_________________
Não é programador, não é hacker. Formado em Direito pela UFPb. Usuário de Linux em tempo integral: Linux User Number: 174012.

clcampos

Mythus estas levantando hipóteses para um uso real do nosso programa... hehehe...

Claro que ele pode ser chamado como quisermos, rm, rms (como sugeriu, se não me engano), e etc. E sobre a outra pergunta cada parametro é tratado separadamente no script. Caso você passe como parametro um * (asterisco) o script nem chega a vê-lo, sendo que o shell resolve isto e já entrega os nomes dos arquivos.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Mythus

Citação de: clcampos online 24 de Agosto de 2007, 17:13
Claro que ele pode ser chamado como quisermos, rm, rms (como sugeriu, se não me engano), e etc. E sobre a outra pergunta cada parametro é tratado separadamente no script. Caso você passe como parametro um * (asterisco) o script nem chega a vê-lo, sendo que o shell resolve isto e já entrega os nomes dos arquivos.

Acho que me expressei mal (mais uma vez hehhe), o que eu estava dizendo é que nos testes que eu fiz, eu só estava pegando o path do primeiro arquivo nem imaginei uma situação do tipo /media/*/temp. Mesmo porque o mais "natural" é deletar arquivos de um lugar em comum e depois deletar de outro.

Só depois que fui ver que ele tinha que testar cada arquivo antes de movê-lo e, a depender da lista, isso pode levar um tempo considerável.

Ou não?
Abraços,
_________________
Não é programador, não é hacker. Formado em Direito pela UFPb. Usuário de Linux em tempo integral: Linux User Number: 174012.

clcampos

#20
Claro que dependendo da lista ele deve mesmo levar muito tempo, mas não se esqueça que isto é mesmo uma brincadeira, estamos fazendo um shell script, e o legal aqui vai ser fazê-lo não ter bugs, e ser algo bem feito, bem customizado, com uma programação enxuta (independente do conjunto de funções).

Se quer realmente fazer uma função deste porte, pensando em fazê-la entrar em produção, pense em C, ou outra coisa, não shell script.

Como  já te disse já construi rotinas em shell script enormes (montagem de programas cobol para cadastro ou relatório, gerenciador de backup, gerenciadores de fontes/objetos de sistemas com controle de versão, cadastro pequeno e mala direta, e etc) só que isto  aconteceu a muitos anos e quase sempre com o intuito de aprender, a não ser o gerenciador de sistemas, backup e mais algumas coisas.

Quero colocar com isto é que (eu e meus pensamentos, claro) acho que não cabe aqui pensar em performace, que isto pode influênciar na instalação/remoção de sistemas usadas por aplicações e etc, pois isto é realmente uma brincadeira, uma brincadeira que eu estou levando a sério, afinal aprendo com isto, exercito minha mente, e me ponho a prova, e eu adoro um desafio.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Mythus

Concordo contigo sim. O que eu estava comentando é mera especulação. ;)
Abraços,
_________________
Não é programador, não é hacker. Formado em Direito pela UFPb. Usuário de Linux em tempo integral: Linux User Number: 174012.

clcampos

Citação de: Mythus online 24 de Agosto de 2007, 23:41
Concordo contigo sim. O que eu estava comentando é mera especulação. ;)

E ai? Como estamos? O  que esta faltando heim? Para ser franco vou ter que reler o tópico, estou meio perdido de onde paramos e o que esta faltando.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Mythus

Última versão estável: http://ubuntuforum-br.org/index.php/topic,24221.msg137167.html#msg137167


Últimas sugestões:

Caso não exista:
mkdir  `mount | grep $parametro_do_local |cut -d \  -f 3`"/.Trash-$USER"

Mover:
Se de mídia montada
mv --backup=t $arquivo `mount | grep $parametro_do_local |cut -d \  -f 3`"/.Trash-$USER"

Se do home
mv --backup=t $arquivo ~/.Trash

Corrija-me se eu estiver errado. hehe
Abraços,
_________________
Não é programador, não é hacker. Formado em Direito pela UFPb. Usuário de Linux em tempo integral: Linux User Number: 174012.

clcampos

Mythus vou te contar um segredo, e não conta para ninguém. Eu estou com a rotina pronta a vários dias e com preguiça de testar... fiz alguns testes hoje, acho que tirei a maioria dos bug's (maioria porque esta dando erro para arquivos contendo espaço no seu nome).

Bem, a rotina esta enorme, até porque existem mais comentários do que linhas propriamente ditas, mas eu acho os comentários essenciais, então vai com eles mesmo. Ajuda ai, roda ela e testa os bug's pra mim.

remove_seguro.sh

#!/bin/bash
#
# Remoção segura de arquivos.
# Na verdade não remove, apenas move para a pasta .trash do usuário
#
# Criado por: Cristiano
# Data: 21/08/2007
#
# Alterações:
# Tirado Limitação para Diretórios                Dica: Mythus     Implementado por: Cristiano  - 22/08/2007
# Verificar se arquivo começa com "-" ou é opção  Dica: Mythus     Implementado por: Cristiano  - 22/08/2007
# Encerrando p/ arquivos de outras partições      Dica: Mythus     Implementado por: Cristiano  - 22/08/2007
# Solicitando confirmação para rm da Trash        Dica: Mythus     Implementado por: Cristiano  - 22/08/2007
# Controle de diretórios e arq. em partição       Dica: Mythus     Implementado por: Cristiano  - 22/08/2007
# Controle de lixeiras .Trash-$USER               Dica: Mythus     Implementado por: Cristiano  - 22/08/2007
# Controle para partição=/home e <> raiz (/)      Dica: Cristiano  Implementado por: Cristiano  - 25/08/2007
# Adicionando opções ao mv p/ aumentar segurança  Dica: Mythus     Implementado por: Cristiano  - 25/08/2007
# Movendo arquivos para Lixeiras em cada Partição Dica: Mythus     Implementado por: Cristiano  - 26/08/2007
#

test "$*" = "" && exit

###########################################################
#Esta variável deve ser alterada para a situação de cada
#usuário que for rodar o script
###########################################################
PATH_Script="/home/clcampos/Scripts"
###########################################################

arquivos=$*              # Parametros passados pela linha de comando
arq_a_rm=""              # Variável criada para tirar arquivos (que já estão na lixeira) da lista de parametros iniciais
                         # (pois são removidos automáticamente e não enviados a lixeira)
lixeiraDestino=""        # Uma ocorrência para cada arquivo indicado na linha de comando. Variável criada porque a Lixeira poderá ser
                         # .Trash ou .Trash-user

#####################################################
# Definição da forma de trabalho da rotina quanto a
#    Arquivos em outras Partições
#    Diretórios
#
eh_dir="0"      # 0: Remove sem perguntar    1: Não remove     2: Pergunta primeiro
eh_par="0"      # 0: Remove sem perguntar    1: Não remove     2: Pergunta primeiro
#######################################################################################

# Consiste a possibilidade de remoção do arquivo
#
for arquivo in $arquivos;do

    opcao=`echo $arquivo | cut -c1-1`

    # Se for alguma opção (começado com "-") executa diretamente o comando rm
    if test "$opcao" = "-"; then
       test -w $arquivo && continue       # se existir o tal arquivo começado com "-" então esta tudo ok, senão deve ser parametro
       test -d $arquivo && continue       # diretório também pode começar com "-"

       echo -e "\033[1mrm:\033[0m Rotina executada com opções. Comando \033[1mrm\033[0m será executado."
       /bin/rm $arquivos
       exit $?  #termina a rotina com o mesmo status de término do comando rm, para consistências caso necessário
    fi

    # Arquivos que estiverem na lixeira serão removidos
    diretorio=`dirname $arquivo`
    diretorio=`basename $diretorio`

    if test "$diretorio" = ".Trash" -o "$diretorio" = ".Trash-$USER"; then
       opSN=""
       echo -e "\n\nConfima remoção \033[1mdefinitiva\033[0m do item \033[1m$arquivo\033[0m que se encontra na lixeira (s/N)? \c"
       read opSN
       [[ $opSN = [Ss] ]] && rm $arquivo && continue
    else
       # Armazena os nomes dos arquivos que serão removidos no próximo for
       # Esta sendo usada para que os arquivos que forem da lixeira não estejam na lista visto que
       #    Ou são removidos aqui
       #    Ou o usuário desistiu da sua remoção, clicando qualquer coisa diferente de S ou s na pergunta acima
       #
       arq_a_rm="$arq_a_rm $arquivo"
    fi

    # Verifica Partição
    sh $PATH_Script\/eh_particao.sh $arquivo

    if test $? -eq 0; then
       if test "$eh_par" = "2";then     # Pede confirmação para mover o arquivo para lixeira
          opSN=""
          echo -e "\n\nO alvo (\033[1m$arquivo\033[0m) encontra-se em uma outra partição. Deseja mesmo movê-lo para lixeira (s/N)? \c"
          read opSN
          [[ $opSN = [Ss] ]] || echo -e "\033[1mrm:\033[0m Nada foi feito."
          [[ $opSN = [Ss] ]] || exit 9999
       elif test  "$eh_par" = "1";then      #Não libera a "remoção"
            echo -e "\033[1mrm:\033[0m Impossível remover \"\033[1m$arquivo\033[0m\": Em outra partição."
            exit 9999
       fi

       #####################################################################
       # Neste ponto ja se sabe que o arquivo é da partição (não raiz), ai
       # define-se que a lixeira dele será /partição/.Trash-$USER
       #
       nm_part=`sh $PATH_Script\/eh_particao.sh $arquivo "true"`

       test "$nm_part" = "" && echo -e "\033[1mrm\033[0m: Nada será feito. Partição não definida." && exit 9999   # apenas uma garantia

       if test `echo $nm_part | cut -f2 -d"/"` = "home";then
          test "$nm_part" != "" && lixeiraDestino="$lixeiraDestino $nm_part/.Trash"         # Para partição em home lixeira = .Trash
       else
          test "$nm_part" != "" && lixeiraDestino="$lixeiraDestino $nm_part/.Trash-$USER"   # Para partição em home lixeira = .Trash-$USER
       fi

       # Teste se partição permite escrita
       #
       ntentativa=1

       while true; do
             # apenas um cuidado de não perder nada, por mais que este arquivo não deva mesmo existir
             test -d "testando_escrita$ntentativa" -o -f "testando_escrita$ntentativa" && ntentativa=`expr $ntentativa + 1` && continue

             echo "teste de escrita" > $nm_part/testando_escrita$ntentativa 2> /dev/null

             if test $? -ne 0; then
                echo -e "\033[1mrm\033[0m: Partição não permite alteração de escrita (inclusão/alteração/exclusão de informação. Nada será feito."
                exit 9999
             else
                rm $nm_part/testando_escrita$ntentativa 2> /dev/null
                break
             fi
       done
       #
       # Fim do teste de escrita em partição
       #

       # Deveria criar o diretório .Trash-$USER na hora de mover, mas vou fazer aqui, até para evitar criar
       # mais um if lá para saber se é uma partição diferente da raiz ou não
       #
       if test `echo $nm_part | cut -f2 -d"/"` != "home";then
          test -d $nm_part/.Trash-$USER || mkdir $nm_part/.Trash-$USER 2> /dev/null

          if test $? -ne 0; then
             echo -e "\033[1mrm\033[0m: Erro na criação da lixeira $nm_part/.Trash-$USER. Nada será feito."
             exit 9999
          fi
       fi
    else
       #################################################################
       # Neste ponto já se sabe que o arquivo é da raiz, ai
       # define-se que a lixeira dele será $HOME/.Trash
       #

       lixeiraDestino="$lixeiraDestino $HOME/.Trash"
    fi

    # Verifica se o arquivo/diretório não existe
    if test ! -f $arquivo -a ! -d $arquivo; then
       echo -e "\033[1mrm:\033[0m Impossível remover \"\033[1m$arquivo\033[0m\": Arquivo não existe."
       exit 9999
    fi

    # Pede autorização para "remover" o diretório
    if test -d $arquivo; then
       if test "$eh_dir" = "2"; then     # Pede confirmação para mover o diretório para lixeira
          opSN=""
          echo -e "\n\nConfima remoção do diretório \033[1m$arquivo\033[0m (s/N)? \c"
          read opSN
          [[ $opSN = [Ss] ]] && continue

          echo -e "\033[1mrm:\033[0m Nada foi feito."
          exit 9999
       elif test "$eh_dir" = "1"; then      #Não libera a "remoção"
            echo -e "\033[1mrm:\033[0m Impossível remover, é um \033[1mDiretório\033[0m."
            exit 9999
       fi
    fi

    # Verifica se é arquivo e tem permissão de remoção
    test -w $arquivo && continue

    echo -e "\033[1mrm:\033[0m Impossível remover \"\033[1m$arquivo\033[0m\": Verifique."
    exit 9999
done

arquivos=$arq_a_rm

set `echo $lixeiraDestino`    # Deixa lista de Lixeiras a disposição do shell através das variáveis $1, $2, ....

for arquivo in $arquivos;do
    wTrash=$1          # Lixeira de trabalho atual
    shift              # Elimina a atual e deixa a próxima pronta para o uso

    mv --backup=t $arquivo $wTrash

done



eh_particao.sh

#!/bin/bash
#
# Consite se PATH é uma partição
#
# Sugestão de função: MYTHUS
# Implementada   por: Cristiano
# Data: 22/08/2007
#
#

# Rotina só aceita um parametro, que deve ser obrigatóriamente um PATH/arquivo (não é mais verdade

# Caso tenha sido apenas passado o nome de um arquivo do diretório atual (sem o percurso), este é adicionado para verificação,
# pelo path, se esta dentro de uma partição ao não
#
#
# Alterações:
# - Adaptação para retornar o diretório da partição caso passe um segundo parametro
#    solicitando a informação. Alteração realizada a fim de atender a necessidade de
#    se criar a pasta .Trash-$USER                                                     Sugestão: Mythus   Implementação: Cristiano - 25/08/2007

test `basename $1` = "$1" && parametro="`pwd`/$1" || parametro=$1

retornaPath=${2:-False}   # Se for "True" ele retorna, se não responder nada assume False

# Caso o PATH passado não seja um direto (exemplo.: ../../outra_pasta/arquivo) o PATH é corrigido
#
if test "`echo $parametro | cut -c1-1`" = "."; then
   dir_arquivo=`dirname $parametro`
   dir_atual=`pwd`

   cd $dir_arquivo
   parametro="`pwd`/`basename $1`"
   cd $dir_atual
fi

while true; do

      tem_corresp=`df | grep $parametro`

      if test "$tem_corresp" = ""; then
         # Neste caso não achou uma partição correspondente ao PATH passado.

         parametro=`dirname $parametro`

         test "$parametro" = "/" && exit 3                         # neste caso não era uma partição

         continue
      else
         tem_corresp=`df | grep $parametro | tr -s " " | cut -f6 -d" "`       

         [[ $retornaPath = [tT][rR][uU][eE] ]] && test "$tem_corresp" = "$parametro" && echo $tem_corresp

         exit 0 #aqui é uma partição
      fi
done


Obs.: Como eu sou medroso antes de executar a rotina eu pego todas as linhas que tem o comando rm, e também a última que move os arquivos para a lixeira e coloco dentro de um echo para mostrar o que faria, e não fazer. Afinal vai que tem um erro grave e eu perco tudo. Só para exemplificar segue uma das linhas que altero para rodar o script (primeiro como esta aqui, e depois como eu rodo):

    mv --backup=t $arquivo $wTrash


    echo "mv --backup=t $arquivo $wTrash"

Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Eunir Augusto

Citação de: clcampos online 31 de Agosto de 2007, 10:45
Bem, a rotina esta enorme, até porque existem mais comentários do que linhas propriamente ditas, mas eu acho os comentários essenciais, então vai com eles mesmo. Ajuda ai, roda ela e testa os bug's pra mim.

grande Cristiano! cheguei no final da brincadeira, mas quero brincar tbm  :D  :D  :D

posso testar, posso testar? ? ?  :D  :D  :D (to igual a criança pequena  :D)

os comentarios são essenciais, e mostram a qualidade do trabalho de qquer programador

a cada dia admiro mais tua forma de raciocinio, meu amigo Cristiano, e qto ao Mythus: pare de alimentar os Trolls no outro topico!  :D  :D  :D

hehehehhehe

[ ]s pra vcs  ;)
Comunidade PCLinuxOS Brasil - Assinatura modificada a pedido do grande amigo Ricardo (rjbgbo)

clcampos

#26
Citação de: Eunir Augusto online 01 de Setembro de 2007, 20:19
Citação de: clcampos online 31 de Agosto de 2007, 10:45
Bem, a rotina esta enorme, até porque existem mais comentários do que linhas propriamente ditas, mas eu acho os comentários essenciais, então vai com eles mesmo. Ajuda ai, roda ela e testa os bug's pra mim.

grande Cristiano! cheguei no final da brincadeira, mas quero brincar tbm  :D  :D  :D

posso testar, posso testar? ? ?  :D  :D  :D (to igual a criança pequena  :D)

os comentarios são essenciais, e mostram a qualidade do trabalho de qquer programador

a cada dia admiro mais tua forma de raciocinio, meu amigo Cristiano, e qto ao Mythus: pare de alimentar os Trolls no outro topico!  :D  :D  :D

hehehehhehe

[ ]s pra vcs  ;)

kkkkkkkk.... Eunir, muito boa as suas colocações, mas vou te contar que se alguém deu uma resposta a altura no outro tópico foi o Mythus, gostei muito. Com classe total rechaçou todas as colocações e mostrou para o que foi lá... hehehe

Quando a você fazer parte da brincadeira é um prazer, acho que é uma grande aquisição ao time de "crianças sem ter o que fazer"... huahuahua.... Eunir, sou um programador frustrado, apesar de ser Engenheiro Eletricista, todo meu foco, e meus estudos foram voltados ao Desenvolvimento de Sistemas (Analise), até a pós-graduação que fiz, e hoje infelizmente fico cada dia mais longe da área, então mato todos meus desejos com Shell Script, que para mim é a "linguagem" (não posso chamar ela de linguagem né) que me da mais liberdade, eu sempre amei mexer com Shell.

Quando esta brincadeira encontrar um fim, e uma hora vai acabar acontecendo, acho que vou estudar um destes componentes do tão sonhado Painel de Controle que o pessoal pede (GRUB, fstab, menu.lst e etc - algo que ainda não esteja por vir), vou fazer a analise para um software de controle/configuração (eu amo, adoro a parte de Analise, mais ainda que programar) e vou colocar as mãos na massa, talvez com interface em python (mas tem que ter shell, senão faço pirraça... huahuahua).
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Eunir Augusto

Citação de: clcampos online 01 de Setembro de 2007, 23:37
kkkkkkkk.... Eunir, muito boa as suas colocações, mas vou te contar que se alguém deu uma resposta a altura no outro tópico foi o Mythus, gostei muito. Com classe total rechaçou todas as colocações e mostrou para o que foi lá... hehehe
(...)
(mas tem que ter shell, senão faço pirraça... huahuahua).

Concordo, Cristiano, o Mythus mandou bem no "troll topic". O problema é que o Mythus tem sempre razao, ele é advogado  ;) O Mestre Mythus tem o poder da retórica!!!  :D  :D  :D E eu concordo com o q ele disse lá  ;)

vlw pelo convite ao time infantil  :D  :D vou testar e postar os results, entao  :D

cara, na eletrica tbm fiz muita coisa compilando no gcc, nossa  :o

mas eletromágica (apelido carinhoso que dei à disciplina de Eletromagnetismo) foi o fim pra minha boa vontade... hehehehhe o prof. enchia o quadro de contas e, de repente, fazia uma mágica e aparecia o resultado, no meio de zilhões de integrais, simples, duplas de linha e triplas de superfície

daí eu apelei e disse: aff de conta, vou fazer geografia!  :D  :D  :D :D

hehehehehe

[ ]s pra vcs
Comunidade PCLinuxOS Brasil - Assinatura modificada a pedido do grande amigo Ricardo (rjbgbo)

clcampos

#28
Citação de: Eunir Augusto online 02 de Setembro de 2007, 10:06
cara, na eletrica tbm fiz muita coisa compilando no gcc, nossa  :o

mas eletromágica (apelido carinhoso que dei à disciplina de Eletromagnetismo) foi o fim pra minha boa vontade... hehehehhe o prof. enchia o quadro de contas e, de repente, fazia uma mágica e aparecia o resultado, no meio de zilhões de integrais, simples, duplas de linha e triplas de superfície

daí eu apelei e disse: aff de conta, vou fazer geografia!  :D  :D  :D :D

hehehehehe

[ ]s pra vcs

kkkkk.... Eunir sou neto de professor de matemática, e filho de um ás na matéria, ai já imagina né. Quando perdi nota nesta matéria na sétima série meu pai passava todos os dias 50 exercícios para mim, e a cada exercício que eu errava no outro dia era adicionado mais um. Lembro que terminei o ano com 78 exercícios diários, nem sei como meu velho tinha tempo para fazer todos aqueles exercícios, e depois do trabalho energia para corrigir tudo.

Dai já imagina né, as matérias de matemática sempre foram fáceis para mim... também pudera... huahuahua

[]'s

Cristiano

A tá... assim que testar posta ai os resultados, e lembre-se que não é para usar arquivos/diretórios com espaço no seu nome, isto é um bug conhecido, e durante a semana a gente vê como tirar o bug.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Eunir Augusto

Citação de: clcampos online 02 de Setembro de 2007, 12:42
nem sei como meu velho tinha tempo para fazer todos aqueles exercícios, e depois do trabalho energia para corrigir tudo.

eu sei como sim, eh pq ele quis passar pra vc o melhor q ele podia na epoca.  ;)

Citação de: clcampos online 02 de Setembro de 2007, 12:42
A tá... assim que testar posta ai os resultados, e lembre-se que não é para usar arquivos/diretórios com espaço no seu nome, isto é um bug conhecido, e durante a semana a gente vê como tirar o bug.

blza, vlw, a semana vai ser corrida, mas tenho q testar, nao posso ficar de fora dessa  :D  :D  :D

[ ]s mestre
Comunidade PCLinuxOS Brasil - Assinatura modificada a pedido do grande amigo Ricardo (rjbgbo)