Lathack

Manipulación de archivos en Linux

Manipulación de archivos en Linux

A continuación estaremos usando las herramientas básicas y fundamentales para la manipulación de archivos en Linux. Estos son fundamentales para el uso de este sistema operativo.

Comando cp

El comando cp  es uno de los más utilizados para la manipulación de archivos en Linux. Esto se debe a que es utilizado para copiar archivos/directorios. Veamos esto a continuación:

Sintaxis:

# cp (opciones) archivo_viejo archivo_nuevo

# cp (opciones) archivos directorio

Opciones más frecuentes:

-f Fuerza la reescritura si ya existe el destino.

-i Me habilita el “prompt” interactivo para evitar la sobreescritura.

-p Preserva todos los permisos de la estructura del directorio y/o

archivo, incluyendo la fecha de creación.

-r,-R Hace una copia recursiva, para poder copiar todo un directorio

y sus subdirectorios.

-v modo “verbose” en donde muestra lo que está haciendo.

Entonces, lo que podemos hacer es copiar un archivo para que en el destino tenga otro nombre; también podemos copiar varios archivos a un directorio.

# cp archivo1 archivo2

El resultado fue la copia del archivo1 al archivo2.

# ls -l archivo2

-rw-r–r– 1 root root 0 May 9 08:23 archivo2

Vemos que el archivo creado es nuevo (se darán cuenta por la fecha).

Para copiar varios archivos a un directorio:

1. Creamos un directorio.

# mkdir dir1

2. Copiamos los dos archivos (archivo1, archivo2) al directorio creado:

# cp archivo1 archivo2 dir1

# ls -l dir1

-rw-r–r– 1 root root 0 May 9 08:23 archivo1

-rw-r–r– 1 root root 0 May 9 08:23 archivo2

En el caso de no encontrarnos en nuestro home, podríamos tener un error. Esto se debe a que le dimos un path (es decir, una ruta) absoluta y el directorio dir1 no existe en /dir1 sino que está en /user/dir1 porque fue creado en nuestro home.

Luego, al ejecutar ls al directorio dir1, tampoco usamos un path absoluto (/root/test/dir1, sino ls -l dir1) porque, precisamente, estamos «parados» dentro de un directorio que contiene a “dir1”.

Con el comando pwd, sabremos en qué directorio en el que nos encontramos. En el caso de ser usuario root:

# pwd

/root/test

# ls -l

total 4

-rw-r–r– 1 root root 0 May 9 08:23 archivo1

-rw-r–r– 1 root root 0 May 9 08:23 archivo2

drwxr-xr-x 2 root root 4096 May 9 08:23 dir

Ejemplos:

1) Funcionamiento de la opción -v (modo verbose):

# cp -v archivo1 archivo2

`archivo1′ -> `archivo2′

2) Al agregar el -i  el sistema nos preguntará en caso de sobreescribir:

# cp -i archivo1 archivo2

cp: overwrite `archivo2′?

3) Aquí vemos el funcionamiento de la opción –p. Listamos con -l para que vean los permisos y la fecha:

# ls -l archivo1

-rw-r–r– 1 root root 0 May 9 08:23 archivo1

# date

Tue May 9 08:23:15 ART 2022

Ahora lo copiamos:

# cp -p archivo1 nuevoarch

# ls -l nuevoarch

-rw-r–r– 1 root root 0 May 9 08:23 nuevoarch

Y, como se puede ver, el archivo nuevo conserva la misma fecha, distinto sería si hubiésemos hecho esto:

# cp archivo1 arch

# ls -l arch

-rw-r–r– 1 root root 0 May 9 08:23 arch

4) Aquí vamos a copiar de forma recursiva (un directorio y todo su contenido):

# cp -r /etc /dir1

# ls -l dir1/

total 4

-rw-r–r– 1 root root 0 May 9 08:23 archivo1

-rw-r–r– 1 root root 0 May 9 08:23 archivo2

drwxr-xr-x 34 root root 4096 May 9 08:23 etc

Al ejecutar ls -l dir, vemos que está el directorio “etc” pero la fecha indica el momento en que copiamos dicho directorio. No obstante, si usamos la opción -p se mantienen la fecha y demás privilegios.

Ante cualquier duda, siempre podemos usar el manual: man cp

Comando touch

Este comando cambia la fecha/hora de acceso o modificación de los archivos.

# touch (opciones) archivo

Opciones:

-a solo cambia el tiempo de acceso.

-m cambia el de modificación.

-t timestamps definir la fecha a utilizar

Recordemos que estos datos se encuentran en versión UTF-8 y en inglés. Veamos el siguiente ejemplo:

[[CC]YY]MMDDhhmm[.ss].

Por ejemplo, la fecha y hora para el 5 de Agosto de 2022 a las 12:43 es 202210051243 (Año-Mes-Dia-Hora).

Ejemplo:

# ls -l archivo1

-rw-r–r– 1 root root 0 Jun 5 05:41 archivo1

# touch archivo1

# ls -l archivo1

-rw-r–r– 1 root root 0 Jun 12 04:52 archivo1

# ls -l archivo2

-rw-r–r– 1 root root 0 Jun 12 04:53 archivo2

# touch -t 200101121845 archivo2

# ls -l archivo2

-rw-r–r– 1 root root 0 Jan 12 2001 archivo2

Ejemplo usando metacaracteres:

# touch hola{1,2,4,5}

hola1 hola2 hola4 hola5

Comando mv

Este comando se utiliza para mover o renombrar archivos y directorios.

Sintaxis:

# mv (opciones) origen destino

Opciones más usadas:

-f si ya existe lo fuerza a sobreescribir.

-i activa el modo interactivo para aceptar los cambios uno por uno.

Ejemplo para cambiar de nombre:

# mv archivo1.txt nuevonombre.txt

Ejemplo para mover:

# mv archivo1.txt /directorio

Comando mkdir

Este comando es utilizado para crear directorios.

# mkdir testing

# ls -ld testing/

drwxr-xr-x 2 root root 4096 Jun 12 02:56 testing/

Otro caso es si queremos crear un directorio que se encuentra dentro de otro. Pero tener en cuenta que si ninguno de los directorios que ponemos existe, nos dará error.

Ejemplo con error:

# mkdir es/otro/directorio/lejano

mkdir: cannot create directory `es/otro/directorio/lejano’: No such file or directory

Ejemplo para crear un directorio y una cadena de subdirectorios:

# mkdir -p es/otro/directorio/lejano

# ls -ld es/otro/directorio/lejano/

drwxr-xr-x 2 root root 4096 Jun 12 02:57 es/otro/directorio/lejano/

Comando rm

Este comando sirve para borrar tanto directorios como archivos.

# rm (opciones) archivos

-f hace un borrado sin preguntar nada.

-i en modo interactivo.

-r,-R para borrar recursivamente.

Ejemplo para borrar un directorio y TODO su contenido:

# rm -rf /directorio

#rm –rf /*

A este último se lo suele considerar como un “suicidio” del sistema. Ya que su destino es borrar absolutamente todo.

Comando rmdir

Es utilizado solamente para borrar directorios vacíos.

# rmdir (opciones) directorio

# rmdir dir

Cabe aclarar que, usualmente se utiliza el comando rm -rf.

Conclusión:

Estos comandos serán de vital importancia, ya que no solo lograremos una mejor manipulación de archivos en Linux. Sino que serán la base para futuras funciones y herramientas dentro del sistema gnu/linux. Estos pueden ser, script en bash, uso de enlaces, editar parámetros, etc..

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

once + diecisiete =

Lathack
Scroll al inicio