Script lixeira em Tcl
Publicado por Sandro Marcell 28/03/2007
[ Hits: 5.174 ]
Homepage: http://sanmarcell.wordpress.com
Este simples script em Tcl, remove arquivos e diretórios, mas em vez de apagá-los, ele os copia para um diretório que será criado em /tmp e que servirá como lixeira.
Sugestão: Coloque está linha em seu .bash_profile:
alias rm=nome_do_script
Assim toda vez que você chamar o comando rm, estará invocando este script.
#!/usr/bin/tcl
## Lixeira.tcl - Script que cria uma lixeira para o usuário
## Escrito por: Sandro Marcell P. Barbosa (Boa Vista - Roraima)
## E-mail: sandro_marcell@yahoo.com.br
## Slackware GNU/Linux 10.1
# +--------------------------------------------------------------+
# Este script remove arq(s). e dir(s)., sem pedido de confirmação.
# O uso do metacaractere (*) é permitido.
# +--------------------------------------------------------------+
# Checa se o usuário passou algum parâmetro para o script:
if {$argc == 0} {
puts stdout "\n>>> Uso: [file tail $argv0] arq.1 arq.2 ...\n"
exit 0
}
# Caso tenha passado, o script contínua!
# Criando, caso não exista o diretório onde o(s) arq(s)./dir(s).\
removido(s), será(ão) posto(s):
set LIXEIRA "/tmp/lixeira-$tcl_platform(user)"
if {![file exists $LIXEIRA]} {
file mkdir $LIXEIRA
}
# Setando as permissões para a lixeira:
file attributes $LIXEIRA -permissions u+rwx,go-rwx
# Início do laço "foreach", responsável pelo controle das execuções abaixo:
foreach ARQUIVO $argv {
# Checa se o(s) arq(s)./dir(s). existe(m):
if {![file exists $ARQUIVO]} {
puts stdout "\nArquivo ou diretório não encotrado!\n"
exit 0
continue
}
# Checa se o usuário é o dono:
if {![file owned $ARQUIVO]} {
puts stdout "\nSem permissão para remover!\n"
exit 0
continue
}
# Se o usuário desejar remover a lixeira!:
if {$ARQUIVO == $LIXEIRA} {
file delete -force $LIXEIRA
puts stdout "\nLixeira removida!\n"
continue
}
# Se as duas primeiras condições forem satisfeitas,\
então estes comandos serão executados:
file copy -force $ARQUIVO $LIXEIRA ;
file delete -force $ARQUIVO ;
puts stdout "\nArquivo removido!\n"
}
Calculadora com funções básicas
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Quais os códigos mais dificeis que vcs sabem fazer? (4)
Não consigo instalar distro antiga no virtualbox nem direto no hd (8)
Fiz uma pergunta no fórum mas não consigo localizar (14)
Upscaling com imagem cortada no monitor secundário ao usar iGPU Multi ... (1)
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... [RES... (8)









