Administració bàsica d'arxius II

Seguim amb el tractament d’arxius, en aquest post més dedicat a la cerca i “moviment”.

A mesura que s’utilitza una màquina, els arxius van creixent en número i mida. Per trobar arxius podem utilitzar la comanda find:

bash

$ find STARTING_PATH OPTIONS EXPRESSION
#Per exemple
find . -name "myfile.txt"

Si volem utilitzar file globbing, hem de posar la expressió entre cometes:

bash

$ find /home/usuari -name "*.jpg"

find permet cercar raxius segons el tipus, mida o hora. Alguns paràmetres de filtrat per tipus són:

  • -type f

    Només retornarà arxius.

  • -type d

    Només retornarà directoris.

  • -type l

    Només retornarà enllaços simbòlics.

Altres paràmetres inclouen:

  • -name

    Filtra per nom.

  • -iname

    Filtra per nom sense ser case-sensitive.

  • -not

    Retorna els resultats no coincidents.

  • maxdepth

    Busca al directori actual i subdirectoris fins a N nivell de profunditat.

Per filtrar arxius per data de modificació, tenim el paràmetre -mtime:

bash

$ sudo find / -name "*.conf" -mtime 7

Aquesta comanda retornarà els arxius acabats en .conf modificats en els últims 7 dies.

Per buscar per mida el paràmetre que s’utilitza és -size:

bash

$ find /var -size +2G

Es pot fer també -size 2G (exactament 2GB) o -size -20G (menor que 20GB).

Un cop hem realitzat una cerca, podem actuar directament sobre el resultat des de la comanda find amb el paràmetre -exec:

bash

$ find . -name "*.conf" -exec chmod 644 '{}' \;

Aquesta comanda buscarà dins el directori actual arxius que acabin en .conf i els aplicarà els permisos 644. Els símbols “{}” representen cada arxiu trobat amb la comanda.

La comanda tar “Tape ARchive” s’utilitza per crear arxius tar, convertint un grup d’arxius en un de sol. tar també pot extreure arxius tar, mostrar una llista dels arxius inclosos en un .tar i afegir arxius adicionals a un .tar existent. La seva sintaxi és:

bash

$ tar OPERACIONS_I_OPCIONS NOMARXIU

Només admet un dels arguments d’operació, que són:

  • –create (-c)

    Crea un arxiu tar.

  • –extract (-x)

    Extreu d’un arxiu.

  • –list (-l)

    Mostra una llista dels arxius inclosos dins el tar.

Les opcions més utilitzades de la comanda tar són:

  • –verbose (-v)

    Mostra els arxius que s’estan processant.

  • –file=archive=name (-f archive-name)

    Especifica el nom de l’arxiu d’emmagatzematge.

Suposem que tenim un directori stuff i volem guardar-lo a archive.tar.

bash

$ tar -cvf archive.tar stuff

On -c crea l’arxiu, -v mostra el progrès i -f permet especificar el nom del .tar.

tar funciona recursivament, aplicant l’acció demanada a cada directori dins el directori especificat.

Per arxivar diversos directoris alhora, els afegim a la comanda.

bash

$ tar -cvf archive.tar stuff1 stuff1

Per extreure un arxiu, farem:

bash

$ tar -xvf archive.tar

Per especificar una ruta on extreure’l, afegirem la opció -C:

bash

$ tar -xvf archive.tar -C /tmp

tar també pot comprimir els arxius .tar amb gzip o bzip2 en una mateixa comanda:

bash

$ tar -czvf nom-de-l-arxiu.tar.gz stuff
$ tar -cjvf nom-de-l-arxiu.tar.bz2 stuff

La primera comanda el comprimirà amb l’algoritme gzip (-z), mentre que la segona ho farà amb bzip2 (-j).

Per descomprimir, farem tar -xvzf, afegint la z.

La comanda cpio “copy in, copy out” s’utilitza per processar arxius d’emmagatzematge .cpio o .tar.

cpio actua de la següent manera:

  • Copiar arxius a un arxiu

  • Extreu arxius d’un arxiu

Agafa la llista d’arxius d’stdin (normalment sortida de la comanda ls) i crea un arxiu cpio:

bash

$ ls  | cpio -o > archive.cpio

La opció -o indica que creï una sortida.

Per extreure l’arxiu, fem:

bash

$ cpio -id < archive.cpio

On la opció -i extreu el contingut i -d crea la carpeta destí.

La comanda dd copia dades d’una ubicació a una altra a baix nivell. La seva sintaxi és:

bash

$ dd if=oldfile of=newfile

On if és l’arxiu d’entrada i of el destí.

La comanda no retornarà res fins que acabi. Per mostrar el progrès podem utilitzar la opció status=progress.

dd també es pot utilitzar per convertir dades entre majúscules i minúscules o per escriure directament a dispositius de bloc.

bash

$ dd if=oldfile of=newfile conv=ucase

Aquesta comanda passaria oldfile a majúscules.

bash

$ dd if=/dev/sda of=/backup.dd bs=4096

Aquesta comanda faria una còpia del disc dur a l’arxiu backup.dd, amb una mida de bloc de 4kB.

I fins aquí el post d’avui. Si t’ha semblat útil pots deixar un comentari i compartir-lo. Ens veiem al següent!