lunes, 8 de julio de 2013

Trabajando con archivos y directorios

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Hoy veremos como manejarnos con archivos y directorios dentro de nuestro terminal Linux. Algunos de los comandos que vamos a ver recordarán a más de uno los del viejo MS-DOS, cosa que supondrá una facilidad añadida para más de uno.

pwd
Este comando sirve para saber en donde estamos posicionados en cada momento. Al teclearlo y pulsar enter nos devolverá el directorio en el que estamos ubicados, por si andamos un poco perdidos.

cp (copy)
Comando para copiar archivos. Sintaxis: cp archivo1 archivo2. Si queremos copiar un archivo desde nuestro directorio /home a otro directorio cualquiera se teclean las rutas absolutas.
Ejemplo: cp /home/paco/archivo1 /etc/archivo. Así hemos copiado archivo1 de /home/paco a /etc.

mv (move)
Este comando sirve tanto para mover archivos de sitio como para cambiarles el nombre. Para moverlos usaremos la misma sintaxis que con el comando cp y para renombrar lo haremos así: mv archivo1 archivo2. De este modo archivo1 pasa a llamarse archivo2.
  • mv -i: nos preguntará antes de sobreescribir archivo (si se da el caso).

rm (remove)
Simple y llanamente, para borrar archivos. Sintaxis: rm archivo1. Y archivo1 desaparece. opciones interesantes:
  • rm -f: borra archivos descartando lo no existente sin mostrar mensaje de error (mensaje que aparecería si quisiéramos eliminar un archivo inexistente sin emplear la opción -f).
  • rm -i: para borrar archivos preguntando antes uno por uno (el clásico ¿está ud. seguro?).
  • rm -r: elimina directorios de forma recursiva (borrando subdirectorios hasta no dejar nada).
  • rm -R: ídem.

shred
Más radical aunque más seguro que rm, ya que tras emplear este podemos recuperar lo borrado mediante herramientas específicas, pero con shred se destruye la información del archivo sin posibilidad de recuperación. Actúa sobreescribiendo el archivo las veces designadas (25 por defecto) haciéndolo ilegible al machacarlo con patrones de texto aleatorios. 
  • shred -u: también elimina el archivo.
  • shred -n 'X': aumenta el número de sobreescrituras 'X' veces.
  • shred 'partición': destruye el contenido de la partición designada (aquí hablamos de como se denominan las particiones en GNU/Linux).
  • shred -f: permite ejecutar el comando sobre un archivo sin permisos de escritura, siempre que uno sea propietario del mismo (tranquilidad, ya hablaremos de los permisos y los propietarios).
  • shred -v: muestra el patrón de caraceres empleado para sobreescribir.
  • shred -z: hace una última pasada de sobreescritura, al margen de las designadas, añadiendo un último patrón de ceros.

mkdir (make directory)
Comando para la creación de directorios. Podemos crear varios a la vez. Sintaxis: mkdir dir01 dir02 dir03 dir04...
  • mkdir -p: crea un árbol de subdirectorios.

rmdir (remove directory)
Para borrar directorios.
  • rmdir -p: elimina un árbol de directorios siempre que no tengan contenido alguno.

paste
Comando que devuelve las líneas de los ficheros designados escritas secuencialmente, separadas por tabulaciones. Sintaxis: paste archivo1 archivo2.
  • paste -s: muestra el contenido de los ficheros en línea en lugar de en paralelo.
  • paste -d: utiliza el carácter / como separador.

nl (number line)
Sirve para numerar las líneas de un archivo.

cut
Permite buscar y/o seleccionar columnas o campos dentro de un archivo estructurado para mostrarlas en el terminal.
  • cut -c nº_columna archivo: muestra los caracteres que estén en la columna designada de archivo.

Por hoy lo dejamos. Les aconsejo que practiquen todos estos comandos con sus opciones, las que aquí reseño y otras que no hemos visto. Consulten la ayuda del terminal (que vimos aquí) y cuidadito con el comando shred que lo carga el diablo.