Introducción
¡Te damos la bienvenida al segundo día en LabEx Corporation! Tras el exitoso reconocimiento del sistema realizado ayer, has sido ascendido al puesto de Arquitecto Digital para el Proyecto Phoenix. El equipo de desarrollo quedó impresionado con tu documentación exhaustiva y tu atención al detalle.
Sin embargo, hay un problema urgente que requiere tu atención inmediata. El administrador de sistemas anterior se marchó de forma repentina y los archivos del Proyecto Phoenix están en completo desorden. El código fuente, la documentación y los archivos de configuración se encuentran dispersos en un único directorio. Los ajustes críticos están desprotegidos al no tener copias de seguridad, y los archivos de registro (logs) obsoletos están saturando el servidor de desarrollo que inspeccionaste ayer.
Tu misión es diseñar una estructura de archivos limpia, lógica y eficiente que sirva de apoyo al creciente equipo de desarrollo. Al crear los directorios adecuados, organizar los archivos, asegurar las copias de respaldo y limpiar los datos antiguos, establecerás los cimientos necesarios para que el Proyecto Phoenix prospere.
La desarrolladora principal, Sarah Chen, confía en ti para transformar este caos en un entorno de desarrollo profesional y organizado. Tu trabajo de hoy impactará directamente en la productividad del equipo y en los plazos del proyecto. ¡Manos a la obra!
Configuración de la Estructura de Directorios del Proyecto
Tu primera tarea consiste en crear una estructura de directorios adecuada dentro de la carpeta phoenix_project. Una estructura bien definida separa los diferentes tipos de archivos, facilitando la navegación y el mantenimiento del proyecto.
Tareas
- Dirígete al directorio
~/project/phoenix_project. - Crea tres nuevos subdirectorios:
srcpara el código fuente,configpara los archivos de configuración ydocspara la documentación.
Requisitos
- Todos los directorios nuevos deben crearse dentro de
~/project/phoenix_project. - Los nombres de los directorios deben ser exactamente
src,configydocs. - Debes utilizar un único comando para crear los tres directorios simultáneamente.
Ejemplos
Tras completar este paso, la estructura de tu directorio debería verse así:
~/project/phoenix_project/
├── config/
├── docs/
├── src/
├── README.md
├── config.json
└── main_app.py
Al ejecutar ls -F en el directorio ~/project/phoenix_project, deberías ver:
README.md config/ config.json docs/ main_app.py src/
El símbolo / después de los nombres indica que se trata de directorios y no de archivos.
Pistas
- Utiliza el comando
cdpara cambiar tu directorio actual. - El comando
mkdirse utiliza para crear nuevos directorios. mkdirpuede aceptar múltiples argumentos para crear varios directorios a la vez.
Navegación y Creación de Archivos del Proyecto
Con la nueva estructura de directorios lista, es hora de mover los archivos existentes del proyecto a sus ubicaciones correspondientes. Esto despejará la raíz del proyecto y facilitará la localización de los archivos.
Tareas
- Mueve el archivo
main_app.pyal directoriosrc. - Mueve el archivo
config.jsonal directorioconfig. - Mueve el archivo
README.mdal directoriodocs.
Requisitos
- Asegúrate de estar en el directorio
~/project/phoenix_projectantes de realizar las operaciones de movimiento. - Utiliza el comando
mvpara reubicar cada archivo.
Ejemplos
Después de mover los archivos, la estructura de tu proyecto debería estar organizada de la siguiente manera:
~/project/phoenix_project/
├── config/
│ └── config.json
├── docs/
│ └── README.md
└── src/
└── main_app.py
Al ejecutar ls -F en la raíz de ~/project/phoenix_project, solo deberían aparecer los directorios:
config/ docs/ src/
Cada archivo debe estar ahora en su subdirectorio correspondiente:
ls src/→main_app.pyls config/→config.jsonls docs/→README.md
Pistas
- El comando
mvse utiliza para mover o renombrar archivos y directorios. - La sintaxis básica es
mv [SOURCE] [DESTINATION]. - Por ejemplo, para mover
file.txta un directorio llamadodocuments, usaríasmv file.txt documents/.
Respaldo de Archivos de Configuración Críticos
El archivo config.json contiene ajustes fundamentales para el Proyecto Phoenix. Antes de realizar cualquier modificación, es una medida de seguridad vital crear un respaldo. Tu siguiente tarea es crear una copia de este archivo.
Tareas
- Crea una copia de seguridad del archivo
config.json.
Requisitos
- El archivo de respaldo debe crearse dentro del directorio
~/project/phoenix_project/config/. - El archivo de respaldo debe llamarse exactamente
config.json.bak.
Ejemplos
Tras crear el respaldo, tu directorio config debería contener ambos archivos:
~/project/phoenix_project/config/
├── config.json
└── config.json.bak
Al ejecutar ls en el directorio ~/project/phoenix_project/config/, deberías ver:
config.json config.json.bak
Ambos archivos deben tener un contenido idéntico, ya que el archivo .bak es una copia exacta del original:
## Estos comandos deberían mostrar una salida idéntica
cat config.json
cat config.json.bak
Pistas
- El comando
cpse utiliza para copiar archivos y directorios. - La sintaxis es
cp [SOURCE] [DESTINATION]. - Necesitarás proporcionar la ruta completa al archivo de origen y la ruta completa para el nuevo archivo de respaldo.
Reorganización de los Recursos Compartidos del Equipo
Has descubierto otra pieza del rompecabezas: un directorio llamado shared_docs ubicado en ~/project/shared_docs. Este directorio contiene guías importantes del equipo y especificaciones de API que deben estar junto al resto de la documentación del proyecto. Tu tarea es integrarlo en la estructura principal del proyecto.
Tareas
- Mueve el directorio
shared_docscompleto y todo su contenido al directorio~/project/phoenix_project/docs/.
Requisitos
- El directorio de origen es
~/project/shared_docs. - La ruta de destino es
~/project/phoenix_project/docs/. - Se debe mover el directorio completo, no solo su contenido.
Ejemplos
Después de mover el directorio shared_docs, tu estructura de documentación debería verse así:
~/project/phoenix_project/docs/
├── README.md
└── shared_docs/
├── api_spec.doc
└── team_guidelines.txt
Al ejecutar ls en el directorio ~/project/phoenix_project/docs/, deberías ver:
README.md shared_docs/
El directorio shared_docs debe contener todos sus archivos originales:
ls ~/project/phoenix_project/docs/shared_docs/
api_spec.doc team_guidelines.txt
La ubicación original ~/project/shared_docs ya no debería existir.
Pistas
- El comando
mvfunciona para directorios de la misma manera que para archivos. - Cuando mueves un directorio, todo su contenido se mueve con él automáticamente.
- El comando tendrá una forma similar a
mv [SOURCE_DIRECTORY] [DESTINATION_DIRECTORY].
Archivado y Eliminación de Archivos de Registro Obsoletos
Tu última tarea es un poco de mantenimiento. El directorio ~/project/logs está acumulando archivos de registro, y los del año 2023 ya no son necesarios para las operaciones diarias. Para ahorrar espacio y mantener el orden, debes comprimir estos registros antiguos en un único archivo de archivo (archive) y luego eliminar los archivos originales.
Entendiendo el comando tar
El comando tar es una potente herramienta de Linux para crear y manipular archivos de archivo. "Tar" originalmente significaba "Tape Archive" (Archivo en Cinta) porque fue diseñado para escribir datos en cintas magnéticas, pero hoy en día se usa comúnmente para crear archivos comprimidos en disco.
Cuando usas tar, básicamente estás agrupando varios archivos en uno solo (llamado archivo o "bundle"), y opcionalmente puedes comprimir este archivo para ahorrar espacio. El formato de compresión más común es gzip, que añade la extensión .gz al nombre del archivo.
El comando tar utiliza diferentes opciones (flags) para controlar su comportamiento:
c: Crea un nuevo archivo (Create).z: Comprime el archivo usando gzip.f: Especifica el nombre del archivo resultante (Filename).
Por lo tanto, tar -czf archivo.tar.gz archivo1 archivo2 crea un nuevo archivo comprimido llamado archivo.tar.gz que contiene archivo1 y archivo2.
Tareas
- Navega al directorio
~/project/logs. - Crea un archivo tar comprimido llamado
old_logs.tar.gzque contenga todos los archivos de registro del año 2023. - Una vez creado el archivo con éxito, elimina los archivos de registro originales de 2023 que acabas de archivar.
Requisitos
- El archivo final debe llamarse exactamente
old_logs.tar.gz. - El archivo debe estar ubicado en el directorio
~/project/logs. - Solo deben archivarse y eliminarse posteriormente los archivos de registro que contengan
2023en su nombre. - El archivo de registro de 2024 (
app_2024-05-01.log) no debe incluirse en el archivo ni debe ser eliminado.
Ejemplos
Antes de archivar, tu directorio de logs contiene:
~/project/logs/
├── app_2023-01-15.log
├── app_2024-05-01.log
└── db_2023-02-20.log
Tras completar la tarea de archivado, tu directorio de logs debería verse así:
~/project/logs/
├── app_2024-05-01.log
└── old_logs.tar.gz
Al ejecutar ls en el directorio ~/project/logs/, deberías ver:
app_2024-05-01.log old_logs.tar.gz
Pistas
- Utiliza el comando
tarpara crear archivos. Las opciones-czfson una combinación poderosa:c(crear),z(comprimir con gzip) yf(especificar nombre de archivo). - Puedes usar un comodín (
*) para seleccionar múltiples archivos que coincidan con un patrón. Por ejemplo,*_2023-*.logcoincidirá con todos los archivos que terminen en.logy tengan_2023-en su nombre. - El comando
rmse utiliza para remover (eliminar) archivos. ¡Ten cuidado al usarlo con comodines!
Resumen
¡Excelente trabajo, Arquitecto Digital! Has transformado con éxito el caos del Proyecto Phoenix en un entorno de desarrollo bien organizado. Sarah Chen y todo el equipo de desarrollo están encantados con tu labor. Has construido una estructura de directorios lógica, organizado archivos críticos, protegido configuraciones con respaldos y optimizado los recursos del sistema archivando registros antiguos.
Estas habilidades fundamentales de la línea de comandos de Linux (mkdir, mv, cp, tar y rm) constituyen la base de la administración de sistemas profesional. Tu trabajo de organización hoy ha sentado unos cimientos sólidos que darán soporte al Proyecto Phoenix durante todo su ciclo de vida de desarrollo.
El equipo de desarrollo ahora puede trabajar de manera eficiente en su entorno debidamente estructurado. Mañana asumirás un nuevo desafío como Investigador de Registros cuando el equipo se enfrente a sus primeros problemas técnicos. ¡Tu enfoque sistemático para la organización te será de gran utilidad en la resolución de problemas!



