Script em Tcl para descompactar arquivos

Publicado por Sandro Marcell 29/03/2007

[ Hits: 5.575 ]

Homepage: http://sanmarcell.wordpress.com

Download descom.tcl




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.

  



Esconder código-fonte

#!/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"
   }
}

Scripts recomendados

Player de musica

Calculadora com funções básicas

Calculadora em Tcl/Tk

tkFind

Crivo de Eratóstenes Simples em Tcl (sem Tk)


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts