Foros del Web » Administración de Sistemas » Unix / Linux »

tar no empaquete los directorios

Estas en el tema de tar no empaquete los directorios en el foro de Unix / Linux en Foros del Web. Hola a todos, estoy realizando un pequeño script y necesito comprimir un directorio en bzip2, como todos sabemos bzip2 comprime archivos no directorios por ello ...
  #1 (permalink)  
Antiguo 06/03/2010, 06:45
Avatar de keldrox  
Fecha de Ingreso: noviembre-2005
Mensajes: 95
Antigüedad: 14 años, 2 meses
Puntos: 2
tar no empaquete los directorios

Hola a todos, estoy realizando un pequeño script y necesito comprimir un directorio en bzip2, como todos sabemos bzip2 comprime archivos no directorios por ello hay que empaquetar primero un directorio para "convertirlo" en un archivo y luego ser comprimido por bzip2. Este es el comando de empaquetamiento que realizo mediante tar:

Código:
tar -cf archivo.tar /home/lain/proyecto/download/
Cuando examino el archivo.tar resultante encuentro que dentro tiene:

Código:
home
      lain
            proyecto
                  download
                        archivo1.gif
                        archivo2.gif
                        archivo3.gif
Como podéis observar me empaqueta los directorios donde se encuentra el directorio final que quiero empaquetar que seria download. Yo quiero que una vez usado el comando tar quedara asi:
Código:
archivo1.gif
archivo2.gif
archivo3.gif

Espero que me haya explicado para cualquier duda pregúntenme. Saludos y muchas gracias.
  #2 (permalink)  
Antiguo 06/03/2010, 15:23
Avatar de arthpix  
Fecha de Ingreso: diciembre-2003
Ubicación: Cancún
Mensajes: 2.340
Antigüedad: 16 años, 1 mes
Puntos: 93
Respuesta: tar no empaquete los directorios

Primero tienes que entrar al directorio que deseas empaquetar y luego ejecutar tar desde dentro de él:
Código:
$ cd /home/usuario/directorio
$ tar cvf directorio.tar *
Suponiendo que directorio contiene archivo1.gif, archivo2.gif, archivo3.gif....archivoN.gif, el resultado será:
Código:
directorio:
   archivo1.gif
   archivo2.gif
   archivo3.gif
   ...
   archivoN.gif
__________________
Antes de hacer rabietas infórmate: Linux != Windows
  #3 (permalink)  
Antiguo 06/03/2010, 17:38
Avatar de keldrox  
Fecha de Ingreso: noviembre-2005
Mensajes: 95
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: tar no empaquete los directorios

arthpix primero gracias por contestar. Lo de moverse al directorio que deseamos empaquetar es algo que no me gusta en absoluto, por que cuando tenemos que usar el comando tar en un script necesitamos estar moviéndonos de directorio para poder hacer el tar, con lo "fácil" que seria ejecutar

Código:
tar cf /home/lain/directorio/
y que empaquetara solo los archivos del directorio que le especificado que es realmente lo que se necesita. Después de estar toda la tarde buscando información y alternativas creo que el comando tar le es imposible hacer eso a no ser que nos encontremos en el directorio actual. Estoy abierto a todo tipo de soluciones.


Saludos y nuevamente gracias!
  #4 (permalink)  
Antiguo 06/03/2010, 22:17
Avatar de arthpix  
Fecha de Ingreso: diciembre-2003
Ubicación: Cancún
Mensajes: 2.340
Antigüedad: 16 años, 1 mes
Puntos: 93
Respuesta: tar no empaquete los directorios

Al contrario, gracias a ti por que hoy aprendí algo nuevo. Pensaba que no se podía, pero SI!!

Utiliza la opción -C (--directory), mira el manual de tar online.

Alogo asi:
Código:
$ tar -c -f archivo.tar -C /ruta/al/directorio archivo1 archivo2 archivo3
Para tu script puedes almacenar primero la ruta y la lista de archivos en variables:
Código:
#!/bin/bash

echo Ingrese la ruta:
read RUTA
ARCHIVOS=$(ls $RUTA)
tar -c -f archivo.tar -C $RUTA $ARCHIVOS
__________________
Antes de hacer rabietas infórmate: Linux != Windows
  #5 (permalink)  
Antiguo 07/03/2010, 04:08
Avatar de keldrox  
Fecha de Ingreso: noviembre-2005
Mensajes: 95
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: tar no empaquete los directorios

arthpix Muchísimas gracias por tu solución, me has ayudado bastante en algo que arrastraba desde hace tiempo y lo solucionaba con la "xapuza" de ir moviéndome de directorios. Si no vivieras tan lejos te invitaba hasta una cerveza ^^.

Bueno ya fuera del hilo me gustaría preguntarte una cosa que me pasa a menudo y una vez lo pude observar en un video y se que se podrá hacer, imagino que será un atajo del teclado. Estamos con un usuario normal e introducimos por ejemplo un comando por ejemplo:

Código:
nano /opt/lampp/etc/php.ini
Editamos el archivo y cuando vamos a guardar nos damos cuenta que solo puede editarlo en súper usuario, salimos del editor nos logeamos como root y debemos de nuevo escribir todo el maldito comando. Mi pregunta es ¿existe algo para repetir lo ultimo escrito de la consola? por que los ~/.bash_history son diferentes, al ser distintos usuarios. Espero que me haya explicado.

Saludos y nuevamente ¡¡gracias!!
  #6 (permalink)  
Antiguo 07/03/2010, 12:23
Avatar de arthpix  
Fecha de Ingreso: diciembre-2003
Ubicación: Cancún
Mensajes: 2.340
Antigüedad: 16 años, 1 mes
Puntos: 93
Respuesta: tar no empaquete los directorios

Creo que si entiendo la pregunta... Pero no tengo ese problema, nunca me logeo como root

Código:
[email protected]:~$ history | more
   ...
   48  sudo aptitude install python-statgrab ttf-liberation hddtemp curl lm-sensors conky-all
   49  sudo chmod u+s /usr/sbin/hddtemp
   50  sudo sensors-detect
   51  tar -xvfz Descargas/92328*
   52  cd Descargas/conky_colors
   52  ./conky-colors --help
   53  ./conky-colors --lang=es --theme=shiki-wine --cpu=1 --cputemp --proc=5 --clock=modern --calendar --hd=simple --rhythmbox=cd --network --eth=Default --weather=MXQR0138 --weatherplus --side=right --ubuntu
   54  make install
   55  conky
   ...
Es una pequeña ventaja de usar sudo
__________________
Antes de hacer rabietas infórmate: Linux != Windows

Etiquetas: directorio, tar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:22.