Operaciones con Archivos y Directorios

Contenidos

Operaciones con Archivos y Directorios

1. Introducción: La Base de la Organización Digital

La gestión de archivos y directorios es una tarea fundamental en cualquier sistema operativo, constituyendo la base sobre la que organizamos nuestra información digital. Para llevar a cabo estas operaciones, existen dos métodos principales de interacción: la intuitiva interfaz gráfica visual, con la que la mayoría de los usuarios están familiarizados, y la potente línea de comandos, que ofrece un control preciso y la capacidad de automatización.

Operaciones con Archivos y Directorios

2. Las Dos Vías de Interacción: Interfaz Gráfica vs. Línea de Comandos

La diferencia fundamental entre ambos métodos radica en cómo nos comunicamos con el sistema operativo para que ejecute nuestras órdenes.

Interfaz Gráfica (GUI):
Es el método visual e intuitivo, basado en la manipulación directa de elementos en la pantalla, como iconos de carpetas y archivos. La acción principal consiste en hacer clic con el botón derecho del ratón sobre un elemento para desplegar un menú de contexto que lista las operaciones disponibles.

Operaciones con Archivos y Directorios

Línea de Comandos (CLI):
Es un método basado completamente en texto. El usuario escribe órdenes específicas, llamadas comandos, en una terminal o consola, y el sistema operativo las interpreta y ejecuta.

Para que sirven CMD, PowerShell y Bash

Operaciones con Archivos y Directorios

CMD sirve para

CMD es el símbolo del sistema de Windows de toda la vida. Antiguo, limitado y aún vivo por pura inercia.

Sirve para:

  • Ejecutar comandos básicos en Windows
  • Copiar, mover y borrar archivos
  • Comprobar red (ping, ipconfig)
  • Ejecutar programas .exe
  • Resolver problemas rápidos cuando no carga la interfaz gráfica

Lo que NO hace bien:

  • Automatización compleja
  • Condiciones lógicas
  • Filtrado avanzado
  • Scripts serios

PowerShell sirve para:

PowerShell es la consola moderna de Windows. No trabaja solo con texto, trabaja con objetos. Aquí está la diferencia clave.

Sirve para:

  • Automatizar tareas del sistema
  • Administrar usuarios, servicios, procesos
  • Gestionar archivos de forma avanzada
  • Administración de redes y sistemas
  • Scripts profesionales en entornos Windows
  • Sustituir casi todo lo que hace CMD… y hacerlo mejor

Ventajas reales:

  • Soporta lógica, filtros, bucles
  • Cmdlets claros y coherentes (Get-, Set-, Remove-)
  • Mucho más seguro y potente
  • Estándar en administración IT

Bash sirve para

Bash es el intérprete de comandos de Linux y macOS. Es el idioma nativo de servidores, desarrollo y DevOps.

Sirve para:

  • Administrar sistemas Linux
  • Automatizar tareas con scripts
  • Manejar archivos y procesos
  • Trabajar en servidores y cloud
  • Desarrollo de software
  • DevOps, CI/CD, contenedores

Ventajas reales:

  • Extremadamente potente
  • Universal en servidores
  • Perfecto para automatización
  • Ideal para programación y sistemas

Lo que hay que saber:

  • Curva de aprendizaje más dura
  • Menos amigable al principio
  • Pero una vez aprendes, no vuelves atrás

Los directorios, comúnmente conocidos como carpetas, son los contenedores que nos permiten organizar nuestros archivos. A continuación, se detallan las operaciones más comunes para gestionarlos a través de ambos métodos de interacción.


3.1. El Método Visual: Sencillez a un Clic de Distancia

La gestión de directorios desde la interfaz gráfica es muy similar en la mayoría de los sistemas operativos. El método universal consiste en hacer clic con el botón derecho sobre un directorio para abrir un menú contextual con las operaciones disponibles.

  1. En Windows 11, el menú de contexto inicial está simplificado. Para acceder a la lista completa de acciones como Cortar, Copiar, Eliminar o Cambiar nombre, es necesario seleccionar la opción Mostrar más opciones o utilizar el atajo de teclado Mayús + F10.
  2. En Ubuntu, el menú de contexto que aparece al hacer clic derecho es más extenso desde el principio y contiene directamente todas las opciones disponibles.

3.2. El Poder del Texto: Control Total con Comandos

Cada sistema operativo ofrece un conjunto de órdenes específicas para gestionar directorios desde la línea de comandos, proporcionando un control más granular y la posibilidad de crear secuencias de comandos para automatizar tareas.


3.2.1. Comandos para Directorios en Windows

Windows cuenta con dos intérpretes de comandos principales: el clásico Símbolo del sistema (CMD) y el más moderno y avanzado, PowerShell.


A. Símbolo del sistema (CMD)
Operaciones con Archivos y Directorios
Comando (y abreviatura)Propósito PrincipalEjemplo de Uso
mkdir (md)Crea un directorio o subdirectorio.mkdir \tareas
chdir (cd)Sin argumentos, muestra la ruta actual. Si indicamos una ruta, la convierte en la ruta actual.chdir \tareas
dirMuestra una lista de archivos y subdirectorios del directorio actual o de la ruta que especifiquemos como argumento.dir \copia
treeMuestra gráficamente la estructura de directorios de una ruta.tree c:\
rmdir (rd)Elimina un directorio especificado.rmdir \copia

B. PowerShell (Cmdlets)
Operaciones con Archivos y Directorios

PowerShell es una consola orientada a objetos donde los comandos (llamados cmdlets) no solo devuelven texto, sino objetos complejos con propiedades y métodos, lo que la hace excepcionalmente potente para la automatización y el scripting.

CmdletPropósito PrincipalEjemplo de Uso
New-ItemCrea un nuevo elemento. Es un cmdlet versátil que puede crear archivos, carpetas o incluso claves de registro, por lo que se debe especificar el tipo con el parámetro -ItemType.New-Item -Path "c:\" -Name "scripts" -ItemType "directory"
Set-LocationEstablece un valor para la ruta actual.Set-Location C:
Get-ChildItemObtiene los elementos de una o varias ubicaciones. Admite el argumento Recurse para obtener también el contenido de todos los subdirectorios.Get-ChildItem -Path C:\scripts
Remove-ItemElimina uno o varios elementos. Es un comando potente que puede eliminar diferentes tipos de objetos, como archivos, carpetas, claves del Registro o variables.Remove-item -Path C:\scripts

3.2.2. Comandos para Directorios en Ubuntu (Bash)

En sistemas como Ubuntu, el intérprete de comandos más extendido es Bash.

Operaciones con Archivos y Directorios
ComandoPropósito PrincipalEjemplo de Uso
mkdirCrea directorios. Usando el argumento -p crea también los elementos de la ruta que aún no existan.mkdir -p /scripts
cdConvierte la ruta indicada en la ruta actual.cd /scripts
rmdirElimina un directorio especificado.rmdir /scripts
lsMuestra una lista de archivos y subdirectorios. El ejemplo ls ~ muestra el contenido del directorio home del usuario.ls ~
pwdMuestra el directorio actual.pwd

4. Gestión de Archivos

Siguiendo los mismos principios de interacción visual versus textual, ahora exploraremos las operaciones equivalentes para la gestión de archivos individuales.


4.1. El Método Visual: Gestión Directa

De forma análoga a los directorios, la gestión de archivos en la interfaz gráfica de Windows y Ubuntu se realiza principalmente a través del menú de contexto que aparece al hacer clic con el botón derecho sobre un archivo. Se mantiene la particularidad de Windows 11, donde es necesario seleccionar Mostrar más opciones para ver acciones clave como Cortar, Copiar, Eliminar y Cambiar nombre.


4.2. El Poder del Texto: Precisión y Automatización

La línea de comandos ofrece herramientas precisas para la manipulación de archivos, ideales para operaciones masivas o automatizadas.


4.2.1. Comandos para Archivos en Windows

A. Símbolo del sistema (CMD)
Operaciones con Archivos y Directorios
Comando (y abreviatura)Propósito PrincipalEjemplo de Uso
copyCopia uno o varios archivos de una ubicación a otra.copy C:\informes\informe.odt D:\copias\
xcopyCopia archivos y directorios, incluidos los subdirectorios.xcopy \tareas \copia
rename (ren)Cambia el nombre de archivos o directorios.rename borrador.odt informe.odt
moveMueve uno o varios archivos de un directorio a otro.move \documentos\informe.odt \trabajo\trimestre_1\
erase (del)Elimina uno o varios archivos.Para un archivo: erase archivo1.odt. Para todos los archivos de una carpeta: erase \documentos
typeMuestra el contenido de un archivo de texto.type archivo2.odt

Además de crear archivos con texto específico, CMD permite guardar la salida de cualquier comando en un archivo. Este concepto se conoce como redirección de salida (>) y es un pilar fundamental en la línea de comandos para generar registros o guardar información.

  • Copiando desde la consola: copy CON archivo
  • Redirigiendo texto: echo "Texto" > archivo
  • Redirigiendo la salida de un comando: dir > archivo

B. PowerShell (Cmdlets)
Operaciones con Archivos y Directorios
CmdletPropósito PrincipalEjemplo de Uso
Copy-ItemCopia un elemento de una ubicación a otra.Copy-Item "C:\scripts\creacuentas.ps1" -Destination "C:\Backup"
Rename-ItemCambia el nombre de un elemento sin afectar su contenido.Rename-Item -Path "C:\scripts\creacuentas.ps1" -NewName "crea_cuentas.ps1"
Move-ItemMueve un elemento, incluidas sus propiedades, a otra ubicación.Move-Item -Path C:\borrador.txt -Destination E:\Def\notas.txt
New-ItemCrea un nuevo elemento.Para crear un archivo vacío: New-Item -Path . -Name "archivo.txt" -ItemType "file". <br>Para crearlo con contenido inicial: New-Item -Path . -Name "archivo.txt" -ItemType "file" -Value "Texto del archivo"
Remove-ItemElimina uno o varios elementos.Remove-Item C:\scripts\*.*
Get-ContentObtiene el contenido del elemento indicado.Get-Content -Path "C:\scripts\creacuentas.ps1"

4.2.2. Comandos para Archivos en Ubuntu (Bash)
Operaciones con Archivos y Directorios
ComandoPropósito PrincipalEjemplo de Uso
rmElimina uno o varios archivos.rm demo.txt
touchCrea un archivo vacío.touch /scripts/ejemplo.sh
catMuestra el contenido de un archivo de texto.cat /scripts/ejemplo.sh
cpCopia uno o varios archivos de una ubicación a otra.cp info.txt info.bak
mvCambia de ubicación o de nombre archivos o directorios.Para renombrar: mv info.bak info.old. Para mover: mv info.bak ~/Documentos/info.bak
Operaciones con Archivos y Directorios

5. ¿Qué Método Elegir?

Tanto la interfaz gráfica (GUI) como la línea de comandos (CLI) son herramientas válidas y potentes que permiten alcanzar los mismos objetivos en la gestión de archivos y directorios. La elección entre una y otra depende de la tarea y de la preferencia del usuario.

La GUI destaca por su facilidad de uso y su naturaleza visual e intuitiva, haciéndola ideal para tareas cotidianas y para usuarios que se inician.

Por otro lado, la CLI brilla por su potencia, eficiencia y capacidad para automatizar tareas repetitivas mediante scripts, convirtiéndose en la herramienta preferida de usuarios más avanzados y administradores de sistemas.

Mas información sobre comandos

Si necesitas más información sobre los comandos para CMD mencionados, o sobre cualquier otro, puedes consultar la documentación oficial de Microsoft en: https://docs.microsoft.com/es-es/windows-server/administration/windows-commands/windows-commands.

En el caso de PowerShell, la documentación oficial de sus cmdlets se puede consultar en : https://docs.microsoft.com/es-es/powershell/module/microsoft.powershell.management/?view=powershell-7.2.

Y, por último, para obtener más información sobre cualquier comando de Bash, puedes consultar los manuales oficiales, que se encuentran en numerosos sitios de Internet. Por ejemplo: https://ss64.com/bash/.

Actividad 1: Trabajo con Símbolo del sistema (CMD)

Descarga y descomprime esta carpeta en tu PC.

1. Preparación del entorno

  1. Descarga el archivo comodines.zip.
  2. Descomprímelo en una carpeta de tu equipo (por ejemplo:
    C:\comodines\).
  3. Crea otra carpeta vacía que usarás como destino (por ejemplo:
    C:\destino\), usando estos comandos.
Operaciones con Archivos y Directorios

2. Apertura de la herramienta

  • Abre Símbolo del sistema (CMD)
    (Inicio → escribir cmd → Enter)

⚠️ Importante:
Todas las tareas de esta parte deben hacerse exclusivamente en CMD, no en PowerShell.


3. Ejercicios a realizar en CMD

Ejercicio 1

Copiar todos los archivos cuyo nombre tenga 6 caracteres o más

Comando:

copy ??????*.* C:\destino\

Explicación:

  • Cada ? representa un carácter.
  • Con seis ? indicamos un mínimo de seis caracteres.
  • El * permite que el nombre tenga más caracteres.

📌 Conclusión:
CMD no permite indicar “6 o más” directamente, pero se puede aproximar usando comodines por posición.


Ejercicio 2

Copiar todos los archivos cuya segunda letra sea una “o”

Comando:

copy ?o*.* C:\destino\

Explicación:

  • ? → primera letra cualquiera
  • o → segunda letra obligatoria
  • * → resto del nombre libre

Ejercicio 3

Copiar los archivos que empiecen por “c” y terminen en “ra”

Comando:

copy c*ra.* C:\destino\

Ejercicio 4

Copiar los archivos que empiecen por “c”, terminen en “ra” y tengan solo 4 caracteres

Comando:

copy c?ra.* C:\destino\

Explicación y problema:
Este comando solo funciona si el nombre tiene exactamente 4 letras.
CMD no puede comprobar longitudes reales, solo posiciones.

📌 Conclusión:
CMD tiene limitaciones importantes para filtros complejos.


Ejercicio 5

Eliminar todos los archivos que NO terminen en “ra”

CMD no permite negaciones, por lo que no se puede hacer de forma limpia con un solo filtro.

Este tipo de operación no es adecuada para CMD y se resolverá correctamente en PowerShell.

Entrega Parte 1

El alumnado debe entregar:

  • Título del ejercicio
  • Capturas completas de la ventana de símbolo del sistem, el comando introducido y la salida por pantalla.
  • Captura completa de la ventana de CMD
  • Debe verse claramente el título: Símbolo del sistema
  • Entrega en pdf

——————————————————————————–

Actividad 2: Comandos con PowerShell y caracteres comodín

1. Apertura de la herramienta

  • Abre Windows PowerShell
    (Inicio → escribir PowerShell → Enter)

⚠️ No usar CMD en esta parte.

2. Ejercicios a realizar en PowerShell

Ejercicio 1

Copiar archivos con 6 caracteres o más en el nombre

Comando:

Get-ChildItem | Where-Object { $_.BaseName.Length -ge 6 } | Copy-Item -Destination C:\destino\

Explicación:
PowerShell permite comprobar la longitud real del nombre del archivo.


Ejercicio 2

Copiar archivos cuya segunda letra sea “o”

Comando:

Copy-Item ?o* C:\destino\

Ejercicio 3

Copiar archivos que empiecen por “c” y terminen en “ra”

Comando:

Copy-Item c*ra C:\destino\

Ejercicio 4

Copiar archivos que empiecen por “c”, terminen en “ra” y tengan exactamente 4 caracteres

Comando:

Get-ChildItem | Where-Object { $_.BaseName -match '^c.ra$' } | Copy-Item -Destination C:\destino\

Explicación:
Se usa una expresión regular, algo que CMD no permite.


Ejercicio 5

Eliminar todos los archivos que NO terminen en “ra”

Comando:

Get-ChildItem | Where-Object { $_.BaseName -notlike '*ra' } | Remove-Item

Entrega Actividad 2

El alumnado debe entregar:

  • Título del ejercicio
  • Capturas completas donde se vea la ventana de PowerShell, el comando introducido y la salida por pantalla.
  • Debe verse claramente el título: Windows PowerShell
  • Deben verse los comandos ejecutados
  • Entrega en pdf

——————————————————————————–

Actividad 3: Comandos de Bash y caracteres comodín

En Ubuntu (Bash), utilizaremos los comandos cp para copiar y rm para eliminar.

Copiar archivos con 6 caracteres o más: cp ??????* [ruta_destino]

Copiar archivos cuya segunda letra sea una ‘o’: cp ?o* [ruta_destino]

Copiar archivos que comiencen por ‘c’ y terminen por ‘ra’: cp c*ra [ruta_destino]

Copiar archivos que comiencen por ‘c’, terminen por ‘ra’ y tengan solo cuatro caracteres: cp c?ra [ruta_destino]

Eliminar archivos que NO terminen en ‘ra’: Si la opción extglob está activa: rm !(*ra) Alternativamente: find . -maxdepth 1 -type f ! -name "*ra" -delete

Conclusión: Bash trata los comodines de forma muy directa a través del shell. A diferencia de Windows, en Linux es común que el comando no necesite especificar .* para la extensión, ya que el punto es tratado como un carácter más del nombre

Actividad 4: Organización y Gestión de Archivos (CMD) 

Esta actividad se centra en la creación masiva, el renombrado y la gestión de la salida de comandos. 

Preparación 

Crea una carpeta de trabajo llamada C:\PracticaCMD\ y entra en ella antes de empezar. 

@echo off
:: 1. Crear la carpeta de origen
md C:\comodines
cd C:\comodines
:: 2. Crear archivos para ejercicios de longitud y patrones (c…ra)
echo contenido > cara.txt
echo contenido > carretera.doc
echo contenido > cebra.png
echo contenido > dibujo.jpg
echo contenido > sol.txt
:: 3. Crear archivos para el ejercicio de la segunda letra "o"
echo contenido > copia.txt
echo contenido > foto.jpg
echo contenido > casa.docx
:: 4. Crear archivos para los ejercicios nuevos (Informes y notas)
echo contenido > informe_ventas.pdf
echo contenido > datos_informe.xlsx
echo contenido > notas.txt
:: 5. Crear un archivo de más de 1MB para el ejercicio de PowerShell
:: 1500000 bytes son aprox 1.43 MB
fsutil file createnew archivo_grande.dat 1500000
echo.
echo ===========================================
echo Carpeta C:\comodines creada con exito
echo ===========================================
pause

Ejercicios a realizar en CMD 

1. Creación múltiple de directorios 

 * Tarea: Crear de un solo golpe tres carpetas llamadas: Enero, Febrero y Marzo. 

 * Comando: md Enero Febrero Marzo 

 * Explicación: El comando md (o mkdir) permite crear varias carpetas separando los nombres por espacios. 

2. Copia selectiva por extensión 

 * Tarea: Copiar todos los archivos que sean imágenes .jpg (o cualquier otra extensión que tengan en el origen) a la carpeta Enero. 

 * Comando: copy *.jpg Enero\ 

 * Explicación: El asterisco * actúa como comodín total para el nombre, pero filtra solo los que tienen la extensión especificada. 

3. Renombrado masivo con comodines 

 * Tarea: Cambiar la extensión de todos los archivos de la carpeta Enero de .jpg a .bak (copia de seguridad). 

 * Comando: ren Enero\*.jpg *.bak 

 * Explicación: Cambia el formato de todos los archivos que coincidan con el patrón sin cambiar el nombre original. 

4. Búsqueda de archivos que contengan una palabra 

 * Tarea: Listar todos los archivos del directorio que contengan la palabra «informe» en su nombre. 

 * Comando: dir *informe*.* 

 * Explicación: Los asteriscos a ambos lados indican que la palabra puede estar en cualquier parte del nombre. 

5. Redirección de salida a un archivo 

 * Tarea: Guardar el listado de todos los archivos de la carpeta actual en un archivo de texto llamado inventario.txt. 

 * Comando: dir > inventario.txt 

 * Explicación: El símbolo > redirige lo que debería salir por pantalla hacia un archivo nuevo. 

Actividad 5: Automatización y Objetos (PowerShell) 

Esta actividad aprovecha el potencial de PowerShell para manejar archivos basándose en sus propiedades (tamaño, fecha) y no solo en su nombre. 

Ejercicios a realizar en PowerShell 

1. Creación de un archivo con contenido incluido 

 * Tarea: Crear un archivo llamado notas.txt que contenga el texto «Revisión finalizada». 

 * Comando: New-Item -Path . -Name "notas.txt" -ItemType "file" -Value "Revisión finalizada" 

 * Explicación: A diferencia de CMD, New-Item permite definir el tipo de objeto y su contenido inicial. 

2. Filtrado por tamaño de archivo 

 * Tarea: Listar todos los archivos que pesen más de 1 Megabyte (1MB) en la carpeta actual. 

 * Comando: Get-ChildItem | Where-Object { $_.Length -gt 1MB } 

 * Explicación: Length es la propiedad que mide el tamaño en bytes. -gt significa «Greater Than» (mayor que). 

3. Ordenar archivos por fecha de modificación 

 * Tarea: Mostrar los últimos 5 archivos modificados, ordenados del más reciente al más antiguo. 

 * Comando: Get-ChildItem | Sort-Object LastWriteTime -Descending | Select-Object -First 5 

 * Explicación: Se usa un «pipeline» (|) para pasar los archivos a un ordenador y luego seleccionar solo los primeros de la lista. 

4. Renombrado reemplazando texto (Estructura de objeto) 

 * Tarea: Cambiar todos los archivos que tengan la extensión .txt para que ahora tengan la extensión .log. 

 * Comando: Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace '\.txt$','.log' } 

 * Explicación: PowerShell trata los archivos como objetos, permitiendo usar el método -replace para cambios masivos precisos. 

5. Contar elementos en un directorio 

 * Tarea: Contar cuántos archivos y carpetas hay en total dentro de una ubicación. 

 * Comando: (Get-ChildItem).Count 

 * Explicación: Al encerrar el comando en paréntesis, accedemos directamente a la propiedad Count de la colección de objetos resultante. 

Consejos para la entrega: 

 Usad el comando cls (en ambos sistemas) antes de cada ejercicio para que la captura de pantalla sea limpia. 

 * Recuérdad que en PowerShell los errores aparecen en color rojo, lo cual es una buena señal para que revisen si escribieron bien los nombres de las carpetas. 

 * Es obligatorio crear las  carpetas en una ruta específica (ej. C:\Clase\EjercicioX) usando cd para moverse.