Unix / Linux - Gestión de archivos

En este capítulo, discutiremos en detalle sobre la administración de archivos en Unix. Todos los datos de Unix están organizados en archivos. Todos los archivos están organizados en directorios. Estos directorios están organizados en una estructura en forma de árbol llamada sistema de archivos.

Cuando trabaja con Unix, de una forma u otra, pasa la mayor parte del tiempo trabajando con archivos. Este tutorial lo ayudará a comprender cómo crear y eliminar archivos, copiarlos y cambiarles el nombre, crear enlaces a ellos, etc.

En Unix, hay tres tipos básicos de archivos:

  • Ordinary Files- Un archivo ordinario es un archivo del sistema que contiene datos, texto o instrucciones del programa. En este tutorial, verá cómo trabajar con archivos normales.

  • Directories- Los directorios almacenan archivos especiales y ordinarios. Para los usuarios familiarizados con Windows o Mac OS, los directorios de Unix son equivalentes a carpetas.

  • Special Files- Algunos archivos especiales brindan acceso a hardware como discos duros, unidades de CD-ROM, módems y adaptadores Ethernet. Otros archivos especiales son similares a los alias o accesos directos y le permiten acceder a un solo archivo con diferentes nombres.

Listado de archivos

Para enumerar los archivos y directorios almacenados en el directorio actual, use el siguiente comando:

$ls

Aquí está la salida de muestra del comando anterior:

$ls

bin        hosts  lib     res.03
ch07       hw1    pub     test_results
ch07.bak   hw2    res.01  users
docs       hw3    res.02  work

El comando ls apoya el -l opción que lo ayudaría a obtener más información sobre los archivos enumerados -

$ls -l
total 1962188

drwxrwxr-x  2 amrood amrood      4096 Dec 25 09:59 uml
-rw-rw-r--  1 amrood amrood      5341 Dec 25 08:38 uml.jpg
drwxr-xr-x  2 amrood amrood      4096 Feb 15  2006 univ
drwxr-xr-x  2 root   root        4096 Dec  9  2007 urlspedia
-rw-r--r--  1 root   root      276480 Dec  9  2007 urlspedia.tar
drwxr-xr-x  8 root   root        4096 Nov 25  2007 usr
drwxr-xr-x  2    200    300      4096 Nov 25  2007 webthumb-1.01
-rwxr-xr-x  1 root   root        3192 Nov 25  2007 webthumb.php
-rw-rw-r--  1 amrood amrood     20480 Nov 25  2007 webthumb.tar
-rw-rw-r--  1 amrood amrood      5654 Aug  9  2007 yourfile.mid
-rw-rw-r--  1 amrood amrood    166255 Aug  9  2007 yourfile.swf
drwxr-xr-x 11 amrood amrood      4096 May 29  2007 zlib-1.2.3
$

Aquí está la información sobre todas las columnas enumeradas:

  • First Column- Representa el tipo de archivo y el permiso otorgado en el archivo. A continuación se muestra la descripción de todo tipo de archivos.

  • Second Column - Representa el número de bloques de memoria que ocupa el archivo o directorio.

  • Third Column- Representa al propietario del archivo. Este es el usuario de Unix que creó este archivo.

  • Fourth Column- Representa al grupo del propietario. Cada usuario de Unix tendrá un grupo asociado.

  • Fifth Column - Representa el tamaño del archivo en bytes.

  • Sixth Column - Representa la fecha y la hora en que este archivo fue creado o modificado por última vez.

  • Seventh Column - Representa el nombre del archivo o directorio.

En el ls -l ejemplo de listado, cada línea de archivo comienza con un d, -o l. Estos caracteres indican el tipo de archivo que se muestra.

No Señor. Prefijo y descripción
1

-

Archivo normal, como un archivo de texto ASCII, un ejecutable binario o un vínculo físico.

2

b

Bloquear archivo especial. Bloquear archivo de dispositivo de entrada / salida, como un disco duro físico.

3

c

Archivo especial de caracteres. Archivo de dispositivo de entrada / salida sin formato, como un disco duro físico.

4

d

Archivo de directorio que contiene una lista de otros archivos y directorios.

5

l

Archivo de enlace simbólico. Enlaces en cualquier archivo normal.

6

p

Pipa con nombre. Un mecanismo para comunicaciones entre procesos.

7

s

Conector utilizado para la comunicación entre procesos.

Metacaracteres

Los metacaracteres tienen un significado especial en Unix. Por ejemplo,* y ?son metacaracteres. Usamos* para que coincida con 0 o más caracteres, un signo de interrogación (?) coincide con un solo carácter.

Por ejemplo:

$ls ch*.doc

Muestra todos los archivos, cuyos nombres comienzan con ch y terminar con .doc -

ch01-1.doc   ch010.doc  ch02.doc    ch03-2.doc 
ch04-1.doc   ch040.doc  ch05.doc    ch06-2.doc
ch01-2.doc ch02-1.doc c

Aquí, *funciona como un meta personaje que coincide con cualquier personaje. Si desea mostrar todos los archivos que terminan con solo.doc, entonces puede usar el siguiente comando:

$ls *.doc

Archivos ocultos

Un archivo invisible es uno, cuyo primer carácter es el punto o el punto (.). Los programas Unix (incluido el shell) utilizan la mayoría de estos archivos para almacenar información de configuración.

Algunos ejemplos comunes de archivos ocultos incluyen los archivos:

  • .profile - El script de inicialización del shell Bourne (sh)

  • .kshrc - El script de inicialización del shell Korn (ksh)

  • .cshrc - El script de inicialización de C shell (csh)

  • .rhosts - El archivo de configuración de shell remoto

Para enumerar los archivos invisibles, especifique el -a opción a ls -

$ ls -a

.         .profile       docs     lib     test_results
..        .rhosts        hosts    pub     users
.emacs    bin            hw1      res.01  work
.exrc     ch07           hw2      res.02
.kshrc    ch07.bak       hw3      res.03
$
  • Single dot (.) - Esto representa el directorio actual.

  • Double dot (..) - Esto representa el directorio principal.

Crear archivos

Puedes usar el vieditor para crear archivos ordinarios en cualquier sistema Unix. Simplemente necesita dar el siguiente comando:

$ vi filename

El comando anterior abrirá un archivo con el nombre de archivo dado. Ahora, presione la teclaipara entrar en el modo de edición. Una vez que esté en el modo de edición, puede comenzar a escribir su contenido en el archivo como en el siguiente programa:

This is unix file....I created it for the first time.....
I'm going to save this content in this file.

Una vez que haya terminado con el programa, siga estos pasos:

  • Presione la tecla esc para salir del modo de edición.

  • Presione dos teclas Shift + ZZ juntos para salir completamente del archivo.

Ahora tendrá un archivo creado con filename en el directorio actual.

$ vi filename
$

Editar archivos

Puede editar un archivo existente usando el vieditor. Discutiremos brevemente cómo abrir un archivo existente:

$ vi filename

Una vez que se abre el archivo, puede entrar en el modo de edición presionando la tecla iy luego puede continuar editando el archivo. Si desea moverse aquí y allá dentro de un archivo, primero debe salir del modo de edición presionando la teclaEsc. Después de esto, puede usar las siguientes teclas para moverse dentro de un archivo:

  • l tecla para moverse hacia el lado derecho.

  • h tecla para moverse hacia el lado izquierdo.

  • k clave para moverse hacia arriba en el archivo.

  • j clave para mover hacia abajo en el archivo.

Entonces, usando las teclas anteriores, puede colocar el cursor donde desee editar. Una vez que esté posicionado, puede usar elipara entrar en el modo de edición. Una vez que haya terminado con la edición en su archivo, presioneEsc y finalmente dos llaves Shift + ZZ juntos para salir completamente del archivo.

Mostrar contenido de un archivo

Puedes usar el catcomando para ver el contenido de un archivo. A continuación se muestra un ejemplo simple para ver el contenido del archivo creado anteriormente:

$ cat filename
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
$

Puede mostrar los números de línea utilizando el -b opción junto con la cat comando de la siguiente manera:

$ cat -b filename
1   This is unix file....I created it for the first time.....
2   I'm going to save this content in this file.
$

Contar palabras en un archivo

Puedes usar el wccomando para obtener un recuento del número total de líneas, palabras y caracteres contenidos en un archivo. A continuación se muestra un ejemplo simple para ver la información sobre el archivo creado anteriormente:

$ wc filename
2  19 103 filename
$

Aquí está el detalle de las cuatro columnas:

  • First Column : Representa el número total de líneas del archivo.

  • Second Column - Representa el número total de palabras en el archivo.

  • Third Column: Representa el número total de bytes del archivo. Este es el tamaño real del archivo.

  • Fourth Column : Representa el nombre del archivo.

Puede proporcionar varios archivos y obtener información sobre esos archivos a la vez. La siguiente es una sintaxis simple:

$ wc filename1 filename2 filename3

Copiando documentos

Para hacer una copia de un archivo use el cpmando. La sintaxis básica del comando es:

$ cp source_file destination_file

A continuación se muestra el ejemplo para crear una copia del archivo existente filename.

$ cp filename copyfile
$

Ahora encontrará un archivo más copyfileen su directorio actual. Este archivo será exactamente el mismo que el archivo original.filename.

Cambio de nombre de archivos

Para cambiar el nombre de un archivo, use el mvmando. A continuación se muestra la sintaxis básica:

$ mv old_file new_file

El siguiente programa cambiará el nombre del archivo existente filename a newfile.

$ mv filename newfile
$

los mvEl comando moverá el archivo existente completamente al nuevo archivo. En este caso, solo encontraránewfile en su directorio actual.

Eliminar archivos

Para eliminar un archivo existente, use el rmmando. A continuación se muestra la sintaxis básica:

$ rm filename

Caution- Un archivo puede contener información útil. Siempre se recomienda tener cuidado al usar esteDeletemando. Es mejor usar el-i opción junto con rm mando.

A continuación se muestra el ejemplo que muestra cómo eliminar completamente el archivo existente filename.

$ rm filename
$

Puede eliminar varios archivos a la vez con el comando que se proporciona a continuación:

$ rm filename1 filename2 filename3
$

Secuencias de Unix estándar

En circunstancias normales, cada programa Unix tiene tres flujos (archivos) abiertos cuando se inicia:

  • stdin- Esto se conoce como la entrada estándar y el descriptor de archivo asociado es 0. También se representa como STDIN. El programa Unix leerá la entrada predeterminada de STDIN.

  • stdout- Esto se conoce como salida estándar y el descriptor de archivo asociado es 1. Esto también se representa como STDOUT. El programa Unix escribirá la salida predeterminada en STDOUT

  • stderr- Esto se conoce como error estándar y el descriptor de archivo asociado es 2. También se representa como STDERR. El programa Unix escribirá todos los mensajes de error en STDERR.