Skip to content

Commit 348b17b

Browse files
committed
Correcciones en empaquetado con tar
1 parent b2447fc commit 348b17b

File tree

2 files changed

+44
-17
lines changed

2 files changed

+44
-17
lines changed

source/02.conbas/05.seguridad/05b.permisos.rst

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -311,10 +311,9 @@ cambiar los propios permisos.
311311
ninguna, en cuyo último caso se usará la máscara para determinar el
312312
efecto. Por ejemplo, si la máscara es ``0022``, y se hace::
313313

314-
$ chmod +w archivo
315-
316-
Se añadirá el permiso de escritura sólo al propierario, ya que
317-
los permisos predeterminados sólo dan permisos de escritura a este.
314+
$ chmod +w archivo # Añade escritura sólo a propietario.
315+
$ chmod =w archivo # Propietario tiene escritura; grupo y otros, no.
316+
$ chmox =rwx archivo # Establece los permisos definidos por la máscara: 644.
318317

319318
* Un signo que puede ser un **=**\ , si se quieren fijar los permisos que
320319
se expresarán a continuación; un **+**\ , si se quieren añadir permisos
@@ -328,6 +327,8 @@ cambiar los propios permisos.
328327

329328
Ilustremos lo anterior::
330329

330+
$ ls -l archivo
331+
-rw-r--r-- 1 josem josem 0 oct 19 20:05 archivo
331332
$ chmod a=rw archivo
332333
-rw-rw-rw- 1 josem josem 0 oct 19 20:05 archivo
333334
$ chmod g= archivo
@@ -336,6 +337,8 @@ cambiar los propios permisos.
336337
-r-----r-- 1 josem josem 0 oct 19 20:05 archivo
337338
$ chmod u+w archivo
338339
-rw----r-- 1 josem josem 0 oct 19 20:05 archivo
340+
$ chmod =rwx archivo
341+
-rw-r--r-- 1 josem josem 0 oct 19 20:05 archivo
339342

340343
También es posible escribir varias expresiones separadas por comas::
341344

source/02.conbas/11.backup/02.empaquetado.rst

Lines changed: 37 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ específicamente de esta labor:
2828
varias acciones, las más habituales son:
2929

3030
``-c``:
31-
Empaquetar, esto es, a partir de una serie de ficheros (y directorios),
31+
**Empaquetar**, esto es, a partir de una serie de ficheros (y directorios),
3232
generar un fichero contenedor. Arriba se tiene un ejemplo.
3333

3434
``-x``:
35-
Desempaquetar, esto es, a partir de un fichero contenedor obtener los
35+
**Desempaquetar**, esto es, a partir de un fichero contenedor obtener los
3636
ficheros de que se compone::
3737

3838
$ tar -xf empaquetado.tar
@@ -46,7 +46,7 @@ específicamente de esta labor:
4646
De esta forma, sólo se desempaquetará :file:`fichero1.txt`.
4747

4848
``-t``:
49-
Lista en la salida estándar el contenido del fichero contenedor::
49+
**Listar** en la salida estándar el contenido del fichero contenedor::
5050

5151
$ tar -lf empaquetado.tar
5252
fichero1.txt
@@ -99,7 +99,7 @@ específicamente de esta labor:
9999
improvisamos. El primero, en cambio, meterá directamente dentro del
100100
directorio actual tal estructura. Por tanto, si queríamos esto último
101101
deberíamos habernos metido antes en :file:`/tmp`. No obstante lo anterior,
102-
existe la opción ``-C`` que permite decirle a :command:`tar` desde que
102+
existe la opción ``-C`` que permite decirle a :command:`tar` desde qué
103103
directorio operamos sin llega a cambiar de directorio::
104104

105105
$ cd
@@ -120,11 +120,34 @@ específicamente de esta labor:
120120
A pesar de todo, podría ocurrir que hubiéramos creado
121121
:file:`estructura_tmp.tar` sin querer que se incluyera en las rutas de los
122122
ficheros. En ese caso existe la opción ``--strip-components`` que permite
123-
indicar cuántos niveles queremos eliminar al recuperar ficheros. La siguiente
124-
orden volcaría directamente en el directorio actual la estructura de
125-
directorios creados::
126-
127-
$ tar --strip-components=1 -xf estructura_tmp.tar
123+
indicar cuántos niveles queremos eliminar al recuperar ficheros. Por ese
124+
motivo, si estuviéramos en el primer caso y :file:`tmp/` se hubiera colado en
125+
la estructura de archivos copiados, la siguiente orden lo eliminaría::
126+
127+
$ tar -tf estructura_tmp.tar
128+
tmp/DIR1/
129+
tmp/DIR1/DIR11/
130+
tmp/DIR1/DIR11/fichero11.txt
131+
tmp/DIR1/fichero1.txt
132+
tmp/DIR2/
133+
$ tar --strip-components=1 -xvf estructura_tmp.tar
134+
DIR1/
135+
DIR1/DIR11/
136+
DIR1/DIR11/fichero11.txt
137+
DIR1/fichero1.txt
138+
DIR2/
139+
140+
Téngase presente, además lo que se indicó ya anteriormente: cuando se
141+
descomprime, podemos especificar qué archivos queremos recuperar, en vez de
142+
recuperar todos::
143+
144+
$ tar --strip-components=3 -xvf estructura_tmp.tar tmp/DIR1/DIR11/fichero11.txt
145+
fichero11.txt
146+
147+
Si nos resulta muy engorroso indicar toda la ruta, también podremos::
148+
149+
$ tar --strip-components=3 -xvf estructura_tmp.tar --wildcards '*/fichero11.txt'
150+
fichero11.txt
128151

129152
La opción ``-f``, como se ha visto, permite indicar el fichero contenedor.
130153
Ahora bien, como ocurre con algunos otros comandos, si se indica como nombre
@@ -194,14 +217,15 @@ específicamente de esta labor:
194217
195218
$ tar -C /tmp -cf - DIR{1,2} | xz -9c > estructura.tar.xz
196219
197-
y es enormemente ineficiente, ya que si queremos saber cuál es el índice de
198-
archivos presentes (con :kbd:`-t`) se deberá descomprimir el archivo para
199-
acceder a esa información.
200-
201220
Alternativamente, la orden tiene la opción :kbd:`-I` que permite indicar cuál
202221
es el ejecutable de compresión. Si la orden comparte la :ref:`interfaz que hemos
203222
analizado para los compresores <compresion>`, :command:`tar` será capaz de
204223
usarla. Por ejemplo, esto comprime el paquete con :ref:`xz <xz>` usando un
205224
nivel de compresión de **9**::
206225
207226
$ tar -I "xz -9" -C /tmp -cf estructura.tar.xz DIR{1,2}
227+
228+
Sea como sea, es enormemente ineficiente, ya que si queremos saber cuál es el
229+
índice de archivos presentes (con :kbd:`-t`) se deberá descomprimir el
230+
archivo para acceder a esa información del paquete. Para copias de seguridad
231+
más serias es mejor usar herramientas como :ref:`dar`.

0 commit comments

Comments
 (0)