Script em Tcl para descompactar arquivos
Publicado por Sandro Marcell 29/03/2007
[ Hits: 5.790 ]
Homepage: http://sanmarcell.wordpress.com
Este simples script em Tcl, descompacta arquivos nos seguintes formatos:
## .gz, .bz2, .zip, .tar.gz e .tar.bz2 ##
É um script fácil de usar e de entender o seu funcionamento, pois ele está todo comentado.
#!/usr/bin/tcl
## Descom.tcl - descompactador de arquivos              
## Escrito por: Sandro Marcell P. Barbosa (Boa Vista - Roraima)        
## E-mail: sandro_marcell@yahoo.com.br                 
## Slackware GNU/Linux 10.1                    
# +---------------------------------------------------------------+
# As extensões suportadas são: .gz, .bz2, .zip, .tar.gz e .tar.bz2          
# +---------------------------------------------------------------+
# Checa se o usuário passou algum parâmetro para o script:
if {$argc == 0} {
puts stdout "\a
>>> Uso: [file tail $argv0] /caminho/arquivo.extensão\n  
>>> Exemplo: [file tail $argv0] /home/user/arquivo.gz\n"
exit 0
}
# Caso tenha passado, o script contínua!
# A condição 'if' teste se o parâmetro passado (o arquivo)\
realmente existe;  
if {![file exists $argv]} {
   puts stdout "\n\a:( Arquivo não encontrado!\n"
   exit 0
}
# Se existir, executa o laço "switch".
# Este procedimento será utilizado no laço "switch".
proc Sucesso {} {
   puts stdout "\n:) Descompactação finalizada com sucesso!\n"
}
# Início do laço "switch", que determinará o comando a ser executado:
switch -glob $argv {
   
   *.tar.gz {
if {[catch {exec tar -xzf $argv 2> /dev/stdout}] == 0} {
         Sucesso
   } else { 
      puts stdout "\a" 
 exit 1
   }
}
   *.gz {
if {[catch {exec gunzip $argv 2> /dev/stdout}] == 0} {
         Sucesso
   } else { 
      puts stdout "\a"
 exit 1
   }
}
   *.tar.bz2 {
if {[catch {exec tar -xjf $argv 2> /dev/stdout}] == 0} {
         Sucesso
   } else {
      puts stdout "\a" 
 exit 1
   }
}
   *.bz2 {
if {[catch {exec bunzip2 $argv 2> /dev/stdout}] == 0} {
         Sucesso
   } else {
      puts stdout "\a" 
 exit 1
   }
}
   *.zip {
if {[catch {exec unzip $argv 2> /dev/stdout}] == 0} {
         Sucesso
   } else {
      puts stdout "\a" 
 exit 1
   }
}
   default {
puts stdout "\n\a:( Arquivo com extensão não suportada!\n"
   }
}
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Secure boot, artigo interessante, nada técnico. (4)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (14)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









