Sistemas Operativos > GNU/Linux

 Archivo Tar

<< < (2/3) > >>

arielb:
Bueno asi fue que tuve que hacerlo pork las variables cuando salen del ciclo se pierden no se pork pero revisare mas para saber . lo hice con una funcion


--- Código: Text ---function Revisar { vDir=0vArchivo=0echo revisandocat revisaTar.txt | while read cdLeedo  echo /&#036;cdLee  if [ -f &#34;/&#036;cdLee&#34; ]&#59;  then    vArchivo=&#036;(( &#036;vArchivo + 1 ))   elif [ -d &#34;/&#036;cdLee&#34; ]&#59;  then    vDir=&#036;(( &#036;vDir + 1 ))  fi  contenido=&#34;Archivos:   &#036;vArchivo         Directorios:&#036;vDir&#34;  echo &#036;contenido &#62; cantidad.txtdone  cat cantidad.txt | while read cdL do   echo &#036;cdL done }  

su -:
Ya lo hice por el lado feo: usando tar:


--- Código: Text ---#!/usr/bin/env perl #Licencia: GPL#Autor: su - use strict; sub usage {  print &#34;tgzlist: file.tar.gz [-f -d]&#092;n&#34;;  print &#34;Options:&#092;n&#34;;  print &#34;&#092;t-f: Files numbers&#092;n&#34;;  print &#34;&#092;t-d: Directories&#092;n&#34;;  exit;} usage() unless @ARGV; if(not -f &#036;ARGV[0]){usage();} my (&#036;file, &#036;linea) = (0, 0); my &#036;pid = open(my &#036;fl, &#34;-|&#34;, &#34;tar -tzf &#036;ARGV[0]&#34;) or die  &#34;Error: &#036;!&#092;n&#34;;while(my &#036;linea = &#60;&#036;fl&#62;){  chomp &#036;linea;  if (&#036;linea =~ m#(.*)/&#036;#){    &#036;dir += 1;  }  else {    &#036;file += 1;  }}close &#036;fl;print &#34;There is &#036;file&#092;n&#34;; if &#036;ARGV[1] eq &#34;-f&#34;;print &#34;There is &#036;dir&#092;n&#34;; if &#036;ARGV[1] eq &#34;-d&#34;;  
Lo bueno es que no tenes que descomprimir el archivo.

su -:
Algo mas:

No tienes que poner tada la lista en el archivo y hacer un cat...

con:

--- Código: Text ---for archivo in &#96;tar -tzf archivo.tar.gz&#96;;do    codigo...;done 

arielb:
ah perfecto su, muchas gracias por tu apoyo, ahora bien tengo una duda, estoy manejando un bash que ya está hecho y tenia que agregarle algunas cosas y dentro de esas esta esta que mencioné aquí, la pregunta sería para usar este programa dentro del script tendría que hacer algo entra, o simplemente invocarlo y pasarle el parametro de lo que necesito hacer?.

su -:
No entiendo bie que es lo que quieres.

Ten en cuenta lo siguiente:
Cuando programas en Bash es igual que usar la terminal, de hecho se puede decir que cuando estas usando la terminal estas programando en bash.

Lo que identifica a Shell script es que usa programas a parte como si fueran funciones, entonces podes usar cualquier porgrama que hayas hecho si esta dentro del path de ejecucion o si lo indicas:

--- Código: Text ---/path/de/programa --flagsfor Cosa in &#96;tgzlist archivo.gz&#96;;do  echo &#036;{Cosa};done 

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa