Introdução
Bem-vindo ao segundo dia na LabEx Corporation! Após o sucesso do reconhecimento do sistema realizado ontem, você foi promovido ao cargo de Arquiteto Digital do Projeto Phoenix. A equipe de desenvolvimento ficou impressionada com sua documentação detalhada e atenção aos pormenores.
No entanto, há um problema urgente que requer sua atenção imediata. O administrador de sistemas anterior saiu abruptamente, e os arquivos do Projeto Phoenix estão em completa desordem. Códigos-fonte, documentações e arquivos de configuração estão espalhados em um único diretório. Configurações críticas estão vulneráveis por falta de backups, e arquivos de log obsoletos estão sobrecarregando o servidor de desenvolvimento que você analisou ontem.
Sua missão é projetar uma estrutura de arquivos limpa, lógica e eficiente que suporte o crescimento da equipe de desenvolvimento. Ao criar diretórios adequados, organizar arquivos, garantir backups e limpar dados antigos, você estabelecerá a base necessária para o sucesso do Projeto Phoenix.
A desenvolvedora líder, Sarah Chen, conta com você para transformar esse caos em um ambiente de desenvolvimento organizado e profissional. Seu trabalho hoje impactará diretamente a produtividade da equipe e o cronograma do projeto. Vamos começar!
Configurando a Estrutura de Diretórios do Projeto
Sua primeira tarefa é criar uma estrutura de diretórios adequada dentro da pasta phoenix_project. Uma estrutura bem definida separa diferentes tipos de arquivos, tornando o projeto mais fácil de navegar e manter.
Tarefas
- Navegue até o diretório
~/project/phoenix_project. - Crie três novos subdiretórios:
srcpara o código-fonte,configpara arquivos de configuração edocspara documentação.
Requisitos
- Todos os novos diretórios devem ser criados dentro de
~/project/phoenix_project. - Os nomes dos diretórios devem ser exatamente
src,configedocs. - Você deve usar um único comando para criar os três diretórios simultaneamente.
Exemplos
Após concluir esta etapa, a estrutura do seu diretório deve estar assim:
~/project/phoenix_project/
├── config/
├── docs/
├── src/
├── README.md
├── config.json
└── main_app.py
Ao executar ls -F no diretório ~/project/phoenix_project, você deverá ver:
README.md config/ config.json docs/ main_app.py src/
Os símbolos / após os nomes indicam que são diretórios, não arquivos.
Dicas
- Use o comando
cdpara mudar seu diretório atual. - O comando
mkdiré usado para criar novos diretórios. - O
mkdirpode aceitar múltiplos argumentos para criar vários diretórios de uma só vez.
Navegando e Organizando os Arquivos do Projeto
Com a nova estrutura de diretórios pronta, é hora de mover os arquivos existentes do projeto para seus devidos lugares. Isso limpará a raiz do projeto e facilitará a localização dos arquivos.
Tarefas
- Mova o arquivo
main_app.pypara o diretóriosrc. - Mova o arquivo
config.jsonpara o diretórioconfig. - Mova o arquivo
README.mdpara o diretóriodocs.
Requisitos
- Certifique-se de estar no diretório
~/project/phoenix_projectantes de realizar as operações de movimentação. - Use o comando
mvpara realocar cada arquivo.
Exemplos
Após mover os arquivos, a estrutura do seu projeto deve estar organizada desta forma:
~/project/phoenix_project/
├── config/
│ └── config.json
├── docs/
│ └── README.md
└── src/
└── main_app.py
Ao executar ls -F na raiz do diretório ~/project/phoenix_project, ele deve mostrar apenas os diretórios:
config/ docs/ src/
Cada arquivo deve estar agora em seu respectivo subdiretório:
ls src/→main_app.pyls config/→config.jsonls docs/→README.md
Dicas
- O comando
mvé usado para mover ou renomear arquivos e diretórios. - A sintaxe básica é
mv [ORIGEM] [DESTINO]. - Por exemplo, para mover
arquivo.txtpara um diretório chamadodocumentos, você usariamv arquivo.txt documentos/.
Fazendo Backup de Arquivos de Configuração Críticos
O arquivo config.json contém definições críticas para o Projeto Phoenix. Antes de qualquer modificação ser feita, é uma medida de segurança vital criar um backup. Sua próxima tarefa é criar uma cópia deste arquivo.
Tarefas
- Crie uma cópia de backup do arquivo
config.json.
Requisitos
- O arquivo de backup deve ser criado dentro do diretório
~/project/phoenix_project/config/. - O arquivo de backup deve se chamar exatamente
config.json.bak.
Exemplos
Após criar o backup, seu diretório config deve conter ambos os arquivos:
~/project/phoenix_project/config/
├── config.json
└── config.json.bak
Ao executar ls no diretório ~/project/phoenix_project/config/, você deverá ver:
config.json config.json.bak
Ambos os arquivos devem ter conteúdo idêntico, já que o arquivo .bak é uma cópia exata do original:
## Estes comandos devem mostrar saídas idênticas
cat config.json
cat config.json.bak
Dicas
- O comando
cpé usado para copiar arquivos e diretórios. - A sintaxe é
cp [ORIGEM] [DESTINO]. - Você precisará fornecer o caminho completo para o arquivo de origem e o caminho completo para o novo arquivo de backup.
Reorganizando os Recursos Compartilhados da Equipe
Você descobriu outra peça do quebra-cabeça: um diretório chamado shared_docs localizado em ~/project/shared_docs. Este diretório contém diretrizes importantes da equipe e especificações de API que pertencem ao restante da documentação do projeto. Sua tarefa é integrá-lo à estrutura principal do projeto.
Tarefas
- Mova todo o diretório
shared_docse todo o seu conteúdo para o diretório~/project/phoenix_project/docs/.
Requisitos
- O diretório de origem é
~/project/shared_docs. - O caminho de destino é
~/project/phoenix_project/docs/. - O diretório inteiro deve ser movido, não apenas o seu conteúdo.
Exemplos
Após mover o diretório shared_docs, sua estrutura de documentação deve ficar assim:
~/project/phoenix_project/docs/
├── README.md
└── shared_docs/
├── api_spec.doc
└── team_guidelines.txt
Ao executar ls no diretório ~/project/phoenix_project/docs/, você deverá ver:
README.md shared_docs/
O diretório shared_docs deve conter todos os seus arquivos originais:
ls ~/project/phoenix_project/docs/shared_docs/
api_spec.doc team_guidelines.txt
O local original ~/project/shared_docs não deve mais existir.
Dicas
- O comando
mvfunciona para diretórios da mesma forma que para arquivos. - Quando você move um diretório, todo o seu conteúdo é movido junto automaticamente.
- O comando será algo como
mv [DIRETÓRIO_ORIGEM] [DIRETÓRIO_DESTINO].
Arquivando e Removendo Arquivos de Log Obsoletos
Sua tarefa final é uma pequena faxina. O diretório ~/project/logs está acumulando arquivos de log, e aqueles de 2023 não são mais necessários para as operações diárias. Para economizar espaço e manter as coisas organizadas, você precisa compactar esses logs antigos em um único arquivo de arquivo (archive) e depois remover os arquivos originais.
Entendendo o comando tar
O comando tar é uma ferramenta poderosa do Linux para criar e manipular arquivos de arquivamento. "Tar" originalmente significava "Tape Archive" (Arquivo em Fita) porque foi projetado para gravar dados em fitas magnéticas, mas hoje é comumente usado para criar arquivos compactados em disco.
Ao usar o tar, você está essencialmente agrupando vários arquivos em um único arquivo (chamado de archive), e pode opcionalmente compactar esse arquivo para economizar espaço. O formato de compactação mais comum é o gzip, que adiciona a extensão .gz ao nome do arquivo.
O comando tar usa diferentes opções (flags) para controlar seu comportamento:
c: Cria um novo arquivo (create)z: Compacta o arquivo usando gzipf: Especifica o nome do arquivo resultante (filename)
Portanto, tar -czf arquivo.tar.gz arquivo1 arquivo2 cria um novo arquivo compactado chamado arquivo.tar.gz contendo o arquivo1 e o arquivo2.
Tarefas
- Navegue até o diretório
~/project/logs. - Crie um arquivo tar compactado chamado
old_logs.tar.gzque contenha todos os arquivos de log do ano de 2023. - Após o arquivo ser criado com sucesso, exclua os arquivos de log originais de 2023 que você acabou de arquivar.
Requisitos
- O arquivo final deve se chamar exatamente
old_logs.tar.gz. - O arquivo deve estar localizado no diretório
~/project/logs. - Apenas arquivos de log com
2023no nome devem ser arquivados e posteriormente removidos. - O arquivo de log de 2024 (
app_2024-05-01.log) não deve ser incluído no arquivo e não deve ser excluído.
Exemplos
Antes de arquivar, seu diretório de logs contém:
~/project/logs/
├── app_2023-01-15.log
├── app_2024-05-01.log
└── db_2023-02-20.log
Após completar a tarefa de arquivamento, seu diretório de logs deve estar assim:
~/project/logs/
├── app_2024-05-01.log
└── old_logs.tar.gz
Ao executar ls no diretório ~/project/logs/, você deverá ver:
app_2024-05-01.log old_logs.tar.gz
Dicas
- Use o comando
tarpara criar arquivos. As opções-czfsão uma combinação poderosa:c(criar),z(compactar com gzip) ef(especificar nome do arquivo). - Você pode usar um curinga (
*) para selecionar múltiplos arquivos que correspondam a um padrão. Por exemplo,*_2023-*.logcorresponderá a todos os arquivos que terminam com.loge possuem_2023-no nome. - O comando
rmé usado para remover (excluir) arquivos. Tenha cuidado ao usá-lo com curingas!
Resumo
Trabalho excepcional, Arquiteto Digital! Você transformou com sucesso o Projeto Phoenix de um caos em um ambiente de desenvolvimento bem organizado. Sarah Chen e toda a equipe de desenvolvimento estão entusiasmados com seu trabalho. Você construiu uma estrutura de diretórios lógica, organizou arquivos críticos, protegeu configurações com backups e limpou recursos do sistema arquivando logs antigos.
Essas habilidades fundamentais de linha de comando do Linux — mkdir, mv, cp, tar e rm — formam a espinha dorsal da administração profissional de sistemas. Seu trabalho de organização hoje criou uma base sólida que apoiará o Projeto Phoenix durante todo o seu ciclo de vida de desenvolvimento.
A equipe de desenvolvimento agora pode trabalhar de forma eficiente em seu ambiente devidamente estruturado. Amanhã, você assumirá um novo desafio como Investigador de Logs quando a equipe encontrar seus primeiros problemas técnicos. Sua abordagem sistemática de organização será muito útil na resolução de problemas!



