Script em Tcl para descompactar arquivos

Publicado por Sandro Marcell 29/03/2007

[ Hits: 5.245 ]

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: [email protected]                 
## 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

O mundo do Polinômio

Calculadora com funções básicas

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

Cadeias aleatórias

O mundo do Polinômio


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts