lección 3
Crear, mover, copiar y borrar archivos
Domina las operaciones fundamentales con archivos y carpetas desde la terminal: crear, copiar, mover, renombrar y eliminar.
⏱ 50 min
Ya sabes moverte por tu ordenador sin ratón. Ahora viene el siguiente paso: aprender a manipular archivos y carpetas directamente desde la terminal. Crear carpetas, crear archivos vacíos, copiarlos, moverlos, renombrarlos y eliminarlos. Son las operaciones que harás miles de veces en tu carrera — y la terminal las hace más rápidas y precisas que cualquier interfaz gráfica.
Piénsalo así: hasta ahora eras un turista que recorría la ciudad mirando edificios. Hoy te conviertes en arquitecto: vas a construir, demoler y reorganizar. Y aquí es donde la terminal brilla de verdad, porque en un solo comando puedes hacer cosas que con el ratón requerirían docenas de clicks.
### mkdir — crear carpetas
El comando mkdir (make directory) crea una carpeta nueva. Es el equivalente a hacer click derecho → "Nueva carpeta" en tu explorador de archivos, pero más rápido y preciso. Funciona igual en ambos sistemas:
1# Funciona igual en 🟦 PowerShell y 🍎 Mac Terminal:2mkdir mi-proyecto34# Crear carpeta dentro de otra carpeta:5mkdir mi-proyecto/datos67# Crear toda una estructura de golpe (carpetas anidadas):8# 🍎 Mac:9mkdir -p mi-proyecto/datos/raw10# 🟦 PowerShell:11mkdir mi-proyecto/datos/raw12# (PowerShell crea las carpetas intermedias automáticamente)
mkdir = "make directory". Crea carpetas al instante.
En Mac necesitas la opción -p para crear carpetas anidadas que no existen aún (por ejemplo, si "datos" no existe y quieres crear "raw" dentro). PowerShell es más permisivo: crea las carpetas intermedias automáticamente sin necesidad de opciones extra.
### Crear archivos vacíos
¿Para qué querrías crear un archivo vacío? Es más útil de lo que parece. Muchos proyectos de programación necesitan archivos de configuración, archivos README, archivos .gitignore... A veces solo necesitas que el archivo exista para que otra herramienta lo reconozca. Aquí es donde los sistemas difieren:
1# 🍎 Mac Terminal:2touch notas.txt # Crea un archivo vacío3touch datos.csv readme.md # Crea varios a la vez45# 🟦 Windows PowerShell:6New-Item notas.txt # Crea un archivo vacío7New-Item datos.csv, readme.md # Crea varios a la vez8# Atajo más corto:9ni notas.txt # ni = alias de New-Item
touch (Mac) y New-Item (PowerShell) crean archivos vacíos.
Consejo de senior: en el mundo real, la primera cosa que hago al empezar un proyecto nuevo es abrir la terminal y escribir: mkdir mi-proyecto && cd mi-proyecto. Luego creo los archivos base. Este flujo se vuelve automático con la práctica — como poner la primera piedra de un edificio.
### Escribir contenido en archivos desde la terminal
Crear archivos vacíos está bien, pero ¿y si quieres poner algo dentro sin abrir un editor? Puedes redirigir texto a un archivo directamente:
1# 🍎 Mac Terminal:2echo "Hola mundo" > saludo.txt # Crea archivo con ese contenido3echo "Segunda línea" >> saludo.txt # AÑADE al final (no sobreescribe)4cat saludo.txt # Muestra el contenido del archivo56# 🟦 Windows PowerShell:7echo "Hola mundo" > saludo.txt # Crea archivo con ese contenido8echo "Segunda línea" >> saludo.txt # AÑADE al final (no sobreescribe)9Get-Content saludo.txt # Muestra el contenido del archivo10# También funciona: type saludo.txt
> crea/sobreescribe, >> añade al final. cat/Get-Content para leer.
¡Cuidado con > vs >>! Un solo > SOBREESCRIBE el archivo completo — si tenía contenido previo, lo perderás. Dos >> AÑADE al final sin borrar nada. Es un error clásico que todo el mundo comete al menos una vez. Si alguna vez pierdes contenido, ya sabes qué pasó.
### cp — copiar archivos y carpetas
Copiar es como fotocopiar: el original se queda donde está y se crea una copia en el destino. Es la operación más segura porque no pierdes nada.
1# 🍎 Mac Terminal:2cp archivo.txt copia.txt # Copiar archivo3cp archivo.txt otra-carpeta/ # Copiar a otra carpeta4cp -r mi-carpeta/ backup/ # Copiar carpeta ENTERA (-r = recursivo)56# 🟦 Windows PowerShell:7Copy-Item archivo.txt copia.txt # Copiar archivo8Copy-Item archivo.txt otra-carpeta/ # Copiar a otra carpeta9Copy-Item mi-carpeta/ backup/ -Recurse # Copiar carpeta entera10# Atajo: cp también funciona como alias en PowerShell11cp archivo.txt copia.txt # Funciona igual
cp (Mac) / Copy-Item (PowerShell). Para carpetas, usa -r (Mac) o -Recurse (PowerShell).
### mv — mover y renombrar
Mover es como cortar y pegar: el archivo desaparece del origen y aparece en el destino. Pero mv tiene un truco: si el destino es un nombre de archivo en la misma carpeta, lo que realmente hace es RENOMBRAR. Un comando, dos funciones.
1# 🍎 Mac Terminal:2mv archivo.txt otra-carpeta/ # Mover a otra carpeta3mv nombre-viejo.txt nombre-nuevo.txt # Renombrar (mismo lugar, distinto nombre)45# 🟦 Windows PowerShell:6Move-Item archivo.txt otra-carpeta/ # Mover a otra carpeta7Move-Item nombre-viejo.txt nombre-nuevo.txt # Renombrar8# Atajo: mv también funciona como alias9mv archivo.txt otra-carpeta/
mv/Move-Item: mover si cambias de carpeta, renombrar si solo cambias el nombre.
Consejo de senior: renombrar archivos con mv es algo que harás constantemente. En mis proyectos, a menudo empiezo con datos-v1.csv y luego renombro a datos-final.csv, datos-final-v2.csv, datos-final-final.csv... (sí, esto es tan malo como suena — por eso existe Git, que aprenderás en la siguiente skill).
### rm — eliminar archivos (con cuidado)
Eliminar desde la terminal es diferente a la papelera de reciclaje. Cuando eliminas con rm (Mac) o Remove-Item (PowerShell), el archivo NO va a la papelera — desaparece directamente. Es como quemar un documento vs tirarlo al cubo de basura donde podrías recuperarlo.
1# 🍎 Mac Terminal:2rm archivo.txt # Eliminar un archivo3rm archivo1.txt archivo2.txt # Eliminar varios4rm -r carpeta/ # Eliminar carpeta y todo su contenido56# 🟦 Windows PowerShell:7Remove-Item archivo.txt # Eliminar un archivo8Remove-Item archivo1.txt, archivo2.txt # Eliminar varios9Remove-Item carpeta/ -Recurse # Eliminar carpeta y contenido10# Atajo:11rm archivo.txt # También funciona como alias
rm/Remove-Item: elimina PERMANENTEMENTE. No hay papelera de reciclaje.
⚠️ IMPORTANTE: rm no tiene "¿estás seguro?" ni papelera de reciclaje. Lo que borras, desaparece. En Mac, "rm -rf /" intentaría borrar TODO tu disco (nunca lo hagas). En PowerShell, Remove-Item -Recurse -Force es igual de destructivo. Regla de oro: antes de borrar, haz ls para confirmar qué estás a punto de eliminar.
### Diagrama: flujo de operaciones con archivos
### Proyecto mini: estructura de un proyecto de datos
Vamos a aplicar todo lo aprendido creando la estructura de carpetas típica de un proyecto de datos. Los ingenieros de datos organizamos nuestros proyectos con carpetas como data/, scripts/, output/ y docs/. Hagámoslo:
1# Funciona en ambos sistemas:2mkdir proyecto-ventas3cd proyecto-ventas4mkdir data scripts output docs5ls6# Resultado: data docs output scripts
En 4 comandos tienes la estructura base de un proyecto real.
1# 🍎 Mac — crear archivos iniciales:2touch data/.gitkeep3touch scripts/limpiar_datos.py4touch docs/README.md5echo "# Proyecto Ventas" > docs/README.md67# 🟦 PowerShell — crear archivos iniciales:8New-Item data/.gitkeep9New-Item scripts/limpiar_datos.py10New-Item docs/README.md11echo "# Proyecto Ventas" > docs/README.md
Creamos archivos con nombres descriptivos. El .gitkeep es para que Git reconozca carpetas vacías.
Ahora tienes un proyecto organizado. Los datos irán en data/, los scripts en scripts/, los resultados en output/ y la documentación en docs/. Esta estructura es una convención en la industria — cuando otro ingeniero abra tu proyecto, sabrá inmediatamente dónde buscar cada cosa.
Consejo de senior: siempre crea un README.md en la raíz de cada proyecto. Aunque solo tenga una línea. Tu yo del futuro (y tus compañeros) te lo agradecerán. He perdido horas intentando entender proyectos propios de hace 6 meses porque no dejé ni una nota.
## ejercicios
Monta tu proyecto de análisis
Estos tres ejercicios son un mismo flujo: aquí montas el proyecto "analisis-clientes" y en los siguientes trabajarás sobre él. Crea la estructura de carpetas (data/raw, data/processed, notebooks, scripts, reports), coloca el dataset inicial de ventas en data/raw/ventas-enero.csv y crea unos ficheros temporales de ejemplo (temp1.txt, temp2.txt y una carpeta cache/) que aparecen al trabajar y que limpiarás al final.
Organiza los datos del proyecto
Seguimos en el proyecto "analisis-clientes" que montaste. Antes de procesar el dataset, tu jefa quiere una copia de seguridad. Copia data/raw/ventas-enero.csv a una carpeta backup/, mueve el original a data/processed/ y renombra la copia a ventas-enero-backup.csv. (Si empiezas directamente aquí, ejecuta primero la solución del ejercicio anterior para tener el proyecto y los ficheros.)
Limpia los temporales del proyecto
Último paso del flujo: tu proyecto "analisis-clientes" tiene los ficheros temporales que creaste al montarlo (temp1.txt, temp2.txt y la carpeta cache/) y que ya no necesitas. Elimínalos de forma segura, verificando siempre antes de borrar.
Regístrate para guardar tu progreso.
## comentarios
Reporta erratas, ayuda a otros o comparte tu opinión. Sé constructivo.
Inicia sesión para comentar y responder.
cargando comentarios...