GNU Bash

Bash

Tutorial Bash: Manipulación de archivos y directorios

Bash/Shell: Aprende a crear, eliminar, copiar y mover archivos y directorios en Linux. Domina comandos touch, mkdir, rm, cp, mv y más

Aprende Bash GRATIS y certifícate

Creación y eliminación de archivos y directorios

En Bash y Shell, la manipulación de archivos y directorios es una tarea fundamental que se realiza mediante comandos específicos. A continuación, se detallan los comandos Linux más utilizados para la creación y eliminación de archivos y directorios.

Para crear archivos, se usa comúnmente el comando touch. Este comando permite crear un archivo vacío o actualizar la fecha de modificación de un archivo existente:

touch nombre_del_archivo.txt

Otra forma de crear archivos es redirigiendo la salida de un comando a un archivo. Por ejemplo, para crear un archivo y escribir "Hola Mundo" en él, se puede usar:

echo "Hola Mundo" > archivo.txt

Consola con los comandos.

Para crear directorios, el comando mkdir es el más utilizado. Este comando permite crear uno o varios directorios nuevos:

mkdir nombre_del_directorio

Si se necesita crear un árbol de directorios, es decir, directorios anidados, se puede usar la opción -p:

mkdir -p ruta/del/nuevo/directorio

Consola con los comandos.

Para eliminar archivos, el comando rm es el más adecuado. Este comando permite eliminar uno o varios archivos:

rm nombre_del_archivo.txt

Si se desea eliminar archivos sin pedir confirmación, se puede usar la opción -f (force):

rm -f nombre_del_archivo.txt

Para eliminar directorios, se usa el comando rmdir o rm -r. El comando rmdir solo elimina directorios vacíos:

rmdir nombre_del_directorio

Para eliminar directorios y su contenido de manera recursiva, se usa rm con la opción -r:

rm -r nombre_del_directorio

Es importante tener cuidado al usar rm -r ya que este comando eliminará todos los archivos y subdirectorios dentro del directorio especificado.

Finalmente, para eliminar directorios de manera forzada y recursiva, combinando -r y -f, se usa:

rm -rf nombre_del_directorio

Consola con los comandos de arriba.

Este comando es muy potente y debe ser usado con precaución, ya que eliminará todo sin pedir confirmación.

Estos comandos son esenciales para cualquier Bash script y permiten una gestión eficiente de archivos y directorios en el entorno Shell.

Copiar y mover archivos y directorios

En Bash y Shell, copiar y mover archivos y directorios son tareas comunes que se realizan mediante comandos específicos. Estos comandos son esenciales para cualquier Bash script y permiten una gestión eficiente de archivos y directorios en el entorno Shell.

Para copiar archivos, se utiliza el comando cp. Este comando permite copiar archivos de una ubicación a otra. La sintaxis básica es:

cp origen destino

Por ejemplo, para copiar un archivo llamado archivo.txt desde el directorio actual a otro directorio llamado backup, se puede usar:

cp archivo.txt backup/

Si se necesita copiar varios archivos a un directorio, se pueden listar los archivos seguidos del directorio de destino:

cp archivo1.txt archivo2.txt archivo3.txt backup/

Para copiar directorios de manera recursiva, se debe usar la opción -r (recursive):

cp -r directorio_origen directorio_destino

Por ejemplo, para copiar un directorio llamado proyecto y todo su contenido a un directorio backup, se usaría:

cp -r proyecto/ backup/

Consola con los comandos de arriba.

El comando mv se utiliza para mover archivos y directorios. Este comando también se puede usar para renombrar archivos y directorios. La sintaxis básica es:

mv origen destino

Consola con los comandos de arriba.

Por ejemplo, para mover un archivo llamado documento.txt al directorio archivos, se puede usar:

mv documento.txt archivos/

Para mover varios archivos a un directorio, se pueden listar los archivos seguidos del directorio de destino:

mv archivo1.txt archivo2.txt archivo3.txt archivos/

Para renombrar un archivo, se usa mv con el nombre actual y el nuevo nombre:

mv archivo_viejo.txt archivo_nuevo.txt

Del mismo modo, para renombrar un directorio:

mv directorio_viejo directorio_nuevo

Si se desea mover directorios y su contenido, no es necesario usar una opción adicional como en el caso de cp. Por ejemplo, para mover un directorio completo llamado proyecto al directorio archivos, se usaría:

mv proyecto/ archivos/

Al usar mv, si el destino ya contiene un archivo o directorio con el mismo nombre, se sobrescribirá sin advertencia. Para evitar esto, se puede usar la opción -i (interactive), que pedirá confirmación antes de sobrescribir:

mv -i archivo.txt destino/

Para obtener más información sobre estos comandos, se pueden consultar las páginas del manual usando man cp y man mv, lo cual proporciona una referencia completa de todas las opciones disponibles.

Estos comandos son fundamentales en cualquier entorno Shell y su dominio es crucial para la manipulación eficiente de archivos y directorios en Bash scripts y otros usos de comandos Linux.

Visualización del contenido de archivos

En el entorno de Bash y Shell, es fundamental conocer los comandos Linux para visualizar el contenido de archivos. Estos comandos son esenciales en cualquier Bash script y permiten una gestión eficiente de archivos y directorios.

Para mostrar el contenido de un archivo de texto, se puede usar el comando cat. Este comando muestra el contenido del archivo en la salida estándar:

cat nombre_del_archivo.txt

Consola con los comandos de arriba.

En archivos grandes, visualizar todo el contenido de una vez puede no ser práctico. En estos casos, se puede utilizar el comando less, que permite paginar el contenido del archivo y desplazarse hacia adelante y hacia atrás:

less nombre_del_archivo.txt

Para salir de less, se presiona la tecla q.

Otro comando útil es more, que también permite visualizar archivos de manera paginada, aunque con menos funcionalidades que less:

more nombre_del_archivo.txt

Para mostrar solo las primeras líneas de un archivo, se utiliza el comando head. Por defecto, head muestra las primeras 10 líneas, pero se puede especificar el número de líneas con la opción -n:

head -n 20 nombre_del_archivo.txt

Si se desea ver las últimas líneas de un archivo, se usa el comando tail. Al igual que head, tail muestra por defecto las últimas 10 líneas, pero se puede ajustar con la opción -n:

tail -n 20 nombre_del_archivo.txt

El comando tail es especialmente útil para monitorear archivos de registro en tiempo real mediante la opción -f, que sigue agregando nuevas líneas a medida que se escriben en el archivo:

tail -f nombre_del_archivo.log

Consola con los comandos de arriba.

Para mostrar el contenido de un archivo con numeración de líneas, se puede usar la opción -n con cat:

cat -n nombre_del_archivo.txt

En casos donde se necesita visualizar el contenido de archivos binarios o archivos que contienen caracteres no imprimibles, el comando xxd es una herramienta útil para generar un volcado hexadecimal:

xxd nombre_del_archivo.bin

Para convertir el volcado hexadecimal de vuelta a binario, se puede usar:

xxd -r nombre_del_archivo.hex

Finalmente, si se necesita mostrar solo ciertas partes de un archivo, el comando awk permite extraer y mostrar campos específicos. Por ejemplo, para mostrar la primera columna de un archivo delimitado por espacios:

awk '{print $1}' nombre_del_archivo.txt

Estos comandos son fundamentales para la visualización y manipulación de archivos en Bash y Shell, proporcionando una base sólida para cualquier tarea de gestión de archivos y directorios en el entorno de comandos Linux.

Búsqueda y filtrado de archivos con find, xargs, y grep

En el entorno de Bash y Shell, los comandos find, xargs, y grep son fundamentales para la búsqueda y filtrado de archivos. Estos comandos Linux son esenciales para cualquier Bash script y permiten una gestión avanzada de archivos y directorios.

find

El comando find se utiliza para buscar archivos y directorios dentro de una jerarquía de directorios de manera recursiva por defecto. Este comando es muy potente y flexible, con opciones para filtrar por tipo de archivo, fecha de modificación, tamaño y más. Por ejemplo, para buscar todos los archivos con la extensión .txt en el directorio actual y todos sus subdirectorios, puedes usar:

find . -name "*.txt"

xargs

xargs es un comando que toma entrada desde la salida estándar (stdin) y la convierte en argumentos de otro comando. Es especialmente útil cuando los resultados de una búsqueda con find necesitan ser procesados con otro comando. Para manejar nombres de archivo con espacios o caracteres especiales, se debe usar -print0 con find y -0 con xargs. Por ejemplo, para eliminar de forma segura todos los archivos .log encontrados en el directorio actual y subdirectorios:

find . -name "*.log" -print0 | xargs -0 rm

Este comando es útil para manejar una gran cantidad de archivos que exceden el límite de argumentos que pueden ser pasados directamente a comandos como rm.

Consola con los comandos de arriba.

grep

El comando grep permite buscar cadenas de texto específicas dentro de archivos. Para buscar recursivamente en todos los archivos bajo el directorio actual, puedes usar grep -r. Sin embargo, para limitar la búsqueda a archivos que coincidan con un patrón específico, como *.log, es recomendable usar la opción --include. Por ejemplo, para buscar la palabra "error" en todos los archivos .log de forma recursiva:

grep -r --include="*.log" "error" .

Consola con los comandos de arriba.

Para una búsqueda más específica combinando find y grep, donde se quiere buscar la palabra "error" solo en archivos .log, se puede usar:

find . -type f -name "*.log" -exec grep "error" {} +

Esta estructura no solo ayuda a mantener clara la funcionalidad y el uso de cada comando, sino que también facilita la comprensión de cómo se pueden combinar efectivamente para realizar tareas complejas de búsqueda y manipulación de archivos en sistemas Unix-like.

Aprende Bash GRATIS online

Todas las lecciones de Bash

Accede a todas las lecciones de Bash y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Principales Distribuciones De Linux

GNU Bash

Introducción Y Entorno

Instalar Ubuntu En Windows Con Wsl

GNU Bash

Introducción Y Entorno

Introducción A Shell Y Bash

GNU Bash

Introducción Y Entorno

Comandos De Navegación Pwd, Cd Y Ls

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Manipulación De Archivos Y Directorios

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Comprimir Y Descomprimir Archivos En Bash Con Tar Y Gzip

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Manipulación De Permisos De Archivos Y Directorios Con Chmod, Chown Y Chgrp

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Enlaces Simbólicos Y Duros

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Redirección Y Tuberías

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Gestión De Procesos Con Ps, Htop Y Pgrep

GNU Bash

Gestión De Procesos Y Servicios

Gestión De Servicios Con Systemd

GNU Bash

Gestión De Procesos Y Servicios

Configuración De Bash

GNU Bash

Interacción Con El Sistema

Redes Y Comunicación Con Ifconfig, Ip Y Netstat

GNU Bash

Interacción Con El Sistema

Transferencia De Archivos Y Comunicación Remota Con Ssh

GNU Bash

Interacción Con El Sistema

Gestión De Paquetes Y Dependencias Y Actualización Del Sistema

GNU Bash

Interacción Con El Sistema

Variables Y Tipos De Datos

GNU Bash

Sintaxis Y Creación De Scripts En Bash

Operadores

GNU Bash

Sintaxis Y Creación De Scripts En Bash

Sintaxis De Control De Flujo

GNU Bash

Sintaxis Y Creación De Scripts En Bash

Expresiones Regulares Y Manipulación De Texto

GNU Bash

Sintaxis Y Creación De Scripts En Bash

Definición Y Uso De Funciones

GNU Bash

Sintaxis Y Creación De Scripts En Bash

Accede GRATIS a Bash y certifícate

En esta lección

Objetivos de aprendizaje de esta lección

  • Crear y eliminar archivos y directorios con touch, mkdir, y rm.
  • Copiar y mover archivos y directorios usando cp y mv.
  • Visualizar el contenido de archivos con cat, less, y more.
  • Buscar y filtrar archivos con find, xargs, y grep.
  • Monitorear archivos de registro en tiempo real con tail.
  • Usar comandos avanzados para explorar y manipular archivos binarios.