shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RES: [shell-script] Alias do rm


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] Alias do rm
Date: Fri, 4 Oct 2002 18:23:08 -0300

Fernando, estou te mandando 2 o erreeme.sh e o undelete.sh pq eles já estão
prontos no meu livro. 

Não é um alias, mas é um script legal. Se vc quiser usá-lo como alias faça:

alias rm=/path/erreeme.sh

Quem se interessou e não entendeu posso explicar após o dia 14.

Além destes 2 scripts que estou mandando, o ideal é ter + 1 que seria o
capador. Este cara deveria ficar na cron e todo dia em um determinado
horário ele deletaria os arquivos que estão na lixeira há mais de, digamos,
15 dias. Seria +/- assim:

find <diretorio pai das lixeiras> -atime +15 exec rm -f {} \;


$ cat erreeme.sh
#!/bin/ksh
#
#  Salvando Copia de Arquivo Antes de Remove-lo
#

if  [ $# -eq 0 ]        Deve ter um ou mais arquivos para remover
then
    echo "Erro -> Uso: erreeme arq [arq] ... [arq]"
    echo "        O uso de metacaracteres e' permitido. Ex. erreeme arq*"
    exit 1
fi

MeuDir="/tmp/$LOGNAME"  # Variável do sist. Contém o nome do usuário.
if  [ ! -d $MeuDir ]    # Se não existir o meu diretório sob o /tmp...
then
    mkdir $MeuDir             # Vou criá-lo
fi

if  [ ! -w $MeuDir ]    # Se não posso gravar no diretório...
then
    echo Impossivel salvar arquivos em $MeuDir. Mude permissao e tente
novamente...
    exit 2
fi

Erro=0              # Variável para indicar o cód. de retorno do prg
for Arq
do
    if  [ ! -f $Arq ]   # Se este arquivo não existir...
    then
        echo $Arq nao existe.
        Erro=3
        continue        Volta para o comando for
    fi

    DirOrig=`dirname $Arq`      # Cmd. dirname informa nome do dir de $Arq
    if  [ ! -w $DirOrig ]       # Verifica permissão de gravação no
diretório
    then
        echo Sem permissao de remover no diretorio de $Arq
        Erro=4
        continue        Volta para o comando for
    fi

    if  [ "$DirOrig" = "$MeuDir" ]      # Se estou "esvaziando a lixeira"...
    then
        echo $Arq ficara sem copia de seguranca
        rm -i $Arq                         # Pergunto se deseja remover
        [ -f $Arq ] || echo $Arq removido  # Será que o usuário aceitou a
remoção?
        continue
    fi
    cd $DirOrig
    pwd >> $Arq  # Linha no final do arquivo que serve para o undelete
    mv $Arq $MeuDir     # Salvo e deleto
    echo $Arq removido
done
exit $Erro      # Passo Nº do erro para o código de retorno


De lambuja ai vai o undelete.sh

$ cat undelete.sh
#!/bin/ksh
#
# Restaura arquivos deletados via erreeme
#

if [ $# -eq 0 ]
then
    echo "Uso: $0 <Nome do Arquivo a Ser Restaurado>"
    exit 1
fi

Dir=`tail -1 /tmp/$LOGNAME/$1`
grep -v $Dir /tmp/$LOGNAME/$1 > $Dir/$1
rm /tmp/$LOGNAME/$1


[ ]s,
Julio Cezar Neves
-Eu Apoio o Software Livre-
-I Support Free Software-
* +55 21 2528-7070  /  9853-4044
*address@hidden


> -----Mensagem original-----
> De: address@hidden 
> [mailto:address@hidden]
> Enviada em: sexta-feira, 4 de outubro de 2002 15:45
> Para: address@hidden
> Assunto: [shell-script] Alias do rm
> 
> 
> Pessoal,
> 
>         Estou tentando criar um alias, só para teste que 
> jogue todos os 
> arquivos para uma pasta especifica em vez de deletar. ( tipo 
> uma lixeira 
> ).
> 
>         Já tentei as seguintes formas:
> 
> alias rm='mv $PWD/${1} ~/lixo/'
> alias rm='mv $PWD/$1 ~/lixo/'
> alias rm='mv $1 ~/lixo/'
> 
>         Alguém pode me dar uma idéia?
> 
> +++++++++++++++++++++++++++++++++++
>            Fernando M. Delago
>            Suporte Técnico
>            TECBAN S/A
>  mailto:address@hidden
> +++++++++++++++++++++++++++++++++++
> "Contrário a crença popular, o Unix é amigável. O que 
> acontece é que ele é 
> muito seletivo às amizades que faz."
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de 
> programação, como perl, C etc. Quem insistir em não seguir 
> esta regra será moderado sem prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
http://www.listasdiscussao.cjb.net
---------------------------------------------------------------------
 

Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]