Introducción
¡Bienvenido al segundo día en LabEx Corporation! Después del reconocimiento exitoso del sistema realizado ayer, ha sido ascendido al puesto de arquitecto digital del Proyecto Phoenix. El equipo de desarrollo quedó impresionado por la exhaustividad de su documentación y su atención al detalle.
Sin embargo, hay un problema urgente que requiere su atención inmediata. El administrador del sistema anterior se marchó de forma inesperada y los archivos del Proyecto Phoenix están completamente desordenados. El código fuente, la documentación y los archivos de configuración están dispersos en un único directorio. Las configuraciones críticas están expuestas al no tener copias de seguridad y los archivos de registro antiguos están saturando el servidor de desarrollo que examinó ayer.
Su misión es diseñar una estructura de archivos limpia, lógica y eficiente que permita trabajar al creciente equipo de desarrollo. Al crear los directorios adecuados, organizar los archivos, proteger las copias de seguridad y limpiar los datos antiguos, establecerá la base que el Proyecto Phoenix necesita para tener éxito.
La desarrolladora principal, Sarah Chen, confía en que transformará este caos en un entorno de desarrollo organizado y profesional. El trabajo que realice hoy influirá directamente en la productividad del equipo y en el calendario del proyecto. ¡Comencemos!
Configuración de la estructura de directorios del proyecto
Su primera tarea consiste en crear una estructura de directorios adecuada dentro del directorio phoenix_project. Una estructura bien definida separa los distintos tipos de archivos, lo que facilita la navegación y el mantenimiento del proyecto.
Tareas
- Acceda al directorio
~/project/phoenix_project. - Cree tres subdirectorios nuevos:
srcpara el código fuente,configpara los archivos de configuración ydocspara la documentación.
Requisitos
- Todos los directorios nuevos deben crearse dentro del directorio
~/project/phoenix_project. - Los nombres de los directorios deben ser exactamente
src,configydocs. - Debe utilizar un solo comando para crear los tres directorios simultáneamente.
Ejemplos
Después de completar este paso, la estructura de directorios 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ía ver:
README.md config/ config.json docs/ main_app.py src/
Los símbolos / después de los nombres indican que se trata de directorios y no de archivos.
Pistas
- Utilice el comando
cdpara cambiar el directorio actual. - El comando
mkdirsirve para crear directorios nuevos. mkdirpuede recibir varios argumentos para crear varios directorios a la vez.
Navegación y creación de archivos del proyecto
Ahora que la nueva estructura de directorios está lista, debe mover los archivos existentes del proyecto a las ubicaciones que les corresponden. Esto dejará libre la raíz del proyecto y facilitará la localización de los archivos.
Tareas
- Mueva el archivo
main_app.pyal directoriosrc. - Mueva el archivo
config.jsonal directorioconfig. - Mueva el archivo
README.mdal directoriodocs.
Requisitos
- Asegúrese de estar en el directorio
~/project/phoenix_projectantes de realizar las operaciones de traslado. - Utilice el comando
mvpara trasladar cada archivo.
Ejemplos
Después de mover los archivos, la estructura del proyecto debería quedar organizada de la siguiente manera:
~/project/phoenix_project/
├── config/
│ └── config.json
├── docs/
│ └── README.md
└── src/
└── main_app.py
Al ejecutar ls -F en el directorio raíz ~/project/phoenix_project, solo deberían aparecer los directorios:
config/ docs/ src/
Cada archivo debería estar ahora en su subdirectorio correspondiente:
ls src/→main_app.pyls config/→config.jsonls docs/→README.md
Pistas
- El comando
mvsirve para mover o cambiar el nombre de archivos y directorios. - La sintaxis básica es
mv [SOURCE] [DESTINATION]. - Por ejemplo, para mover
file.txta un directorio llamadodocuments, utilizaríamv file.txt documents/.
Copia de seguridad de archivos de configuración críticos
El archivo config.json contiene configuraciones críticas del Proyecto Phoenix. Antes de realizar cualquier modificación, es fundamental crear una copia de seguridad como medida de protección. Su siguiente tarea consiste en crear una copia de este archivo.
Tareas
- Cree una copia de seguridad del archivo
config.json.
Requisitos
- El archivo de copia de seguridad debe crearse dentro del directorio
~/project/phoenix_project/config/. - El nombre del archivo de copia de seguridad debe ser exactamente
config.json.bak.
Ejemplos
Después de crear la copia de seguridad, el 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ía ver:
config.json config.json.bak
Ambos archivos deberían tener el mismo contenido, ya que el archivo .bak es una copia exacta del original:
## These commands should show identical output
cat config.json
cat config.json.bak
Pistas
- El comando
cpsirve para copiar archivos y directorios. - La sintaxis es
cp [SOURCE] [DESTINATION]. - Deberá proporcionar la ruta completa del archivo de origen y la ruta completa del nuevo archivo de copia de seguridad.
Reorganización de los recursos compartidos del equipo
Ha descubierto otra pieza del rompecabezas: un directorio llamado shared_docs ubicado en ~/project/shared_docs. Este directorio contiene directrices importantes del equipo y especificaciones de API que deben integrarse con el resto de la documentación del proyecto. Su tarea consiste en incorporarlo a la estructura principal del proyecto.
Tareas
- Mueva todo el directorio
shared_docs, junto con 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/. - Debe mover el directorio completo, no solo su contenido.
Ejemplos
Después de mover el directorio shared_docs, la 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ía ver:
README.md shared_docs/
El directorio shared_docs debería 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 con directorios igual que con archivos. - Al mover un directorio, todo su contenido se mueve automáticamente con él.
- El comando tendrá esta forma:
mv [SOURCE_DIRECTORY] [DESTINATION_DIRECTORY].
Archivado y eliminación de archivos de registro antiguos
Su última tarea consiste en realizar una limpieza. El directorio ~/project/logs está acumulando archivos de registro, y los correspondientes a 2023 ya no son necesarios para las operaciones diarias. Para ahorrar espacio y mantener todo ordenado, debe comprimir estos registros antiguos en un único archivo y, después, eliminar los archivos originales.
Cómo funciona el comando tar
El comando tar es una herramienta de Linux muy potente para crear y manipular archivos de archivado. «Tar» originalmente significaba «Tape Archive» porque se diseñó para escribir datos en cintas magnéticas, pero actualmente se utiliza habitualmente para crear archivos comprimidos en disco.
Al utilizar tar, básicamente agrupa varios archivos en un único archivo —denominado archivo de archivado— y, opcionalmente, puede comprimirlo 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 distintas opciones —o indicadores— para controlar su comportamiento:
c: Crear un archivo de archivado nuevoz: Comprimir el archivo de archivado mediante gzipf: Especificar el nombre del archivo de archivado
Por lo tanto, tar -czf archive.tar.gz file1 file2 crea un archivo de archivado comprimido llamado archive.tar.gz que contiene file1 y file2.
Tareas
- Acceda al directorio
~/project/logs. - Cree un archivo de archivado tar comprimido llamado
old_logs.tar.gzque contenga todos los archivos de registro del año 2023. - Cuando el archivo se haya creado correctamente, elimine los archivos de registro originales de 2023 que acaba de archivar.
Requisitos
- El archivo de archivado final debe llamarse exactamente
old_logs.tar.gz. - El archivo de archivado debe encontrarse en el directorio
~/project/logs. - Solo deben archivarse y eliminarse posteriormente los archivos de registro cuyo nombre contenga
2023. - El archivo de registro de 2024 (
app_2024-05-01.log) no debe incluirse en el archivo ni eliminarse.
Ejemplos
Antes de archivarlos, el directorio de registros contiene:
~/project/logs/
├── app_2023-01-15.log
├── app_2024-05-01.log
└── db_2023-02-20.log
Después de completar la tarea de archivado, el directorio de registros debería verse así:
~/project/logs/
├── app_2024-05-01.log
└── old_logs.tar.gz
Al ejecutar ls en el directorio ~/project/logs/, debería ver:
app_2024-05-01.log old_logs.tar.gz
Pistas
- Utilice el comando
tarpara crear archivos de archivado. Las opciones-czfforman una combinación muy útil:c(crear),z(comprimir con gzip) yf(especificar el nombre del archivo). - Puede utilizar un comodín (
*) para seleccionar varios archivos que coincidan con un patrón. Por ejemplo,*_2023-*.logcoincide con todos los archivos que terminan en.logy contienen_2023-en su nombre. - El comando
rmsirve para eliminar archivos. ¡Tenga cuidado al utilizarlo con comodines!
Resumen
¡Excelente trabajo, arquitecto digital! Ha transformado correctamente el Proyecto Phoenix: pasó de ser un caos a convertirse en un entorno de desarrollo bien organizado. Sarah Chen y todo el equipo de desarrollo están encantados con su trabajo. Ha creado una estructura lógica de directorios, organizado archivos críticos, protegido las configuraciones mediante copias de seguridad y limpiado los recursos del sistema al archivar los 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 profesional de sistemas. El trabajo de organización que ha realizado hoy ha creado una base sólida que respaldará el Proyecto Phoenix durante todo su ciclo de desarrollo.
Ahora el equipo de desarrollo puede trabajar de forma eficiente en su entorno correctamente estructurado. Mañana afrontará un nuevo desafío como investigador de registros, cuando el equipo se encuentre con sus primeros problemas técnicos. ¡Su enfoque sistemático de la organización le será muy útil para resolver incidencias!



