Script lixeira em Tcl
Publicado por Sandro Marcell 28/03/2007
[ Hits: 4.862 ]
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" }
Renomeando arquivos de forma padronizada
Calculadora com funções básicas
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta