Introdução
Neste projeto, você aprenderá como copiar arquivos do diretório /etc com o ano de última modificação em 2022 para o diretório /tmp/etc, preservando a estrutura de diretórios.
🎯 Tarefas
Neste projeto, você aprenderá:
- Como criar um script para automatizar o processo de cópia de arquivos
- Como usar o comando
findpara pesquisar arquivos com base na sua data de última modificação - Como usar o comando
cppara copiar arquivos, preservando a estrutura de diretórios
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Automatizar o processo de cópia de arquivos de um diretório específico com base na sua data de última modificação
- Entender como usar comandos de shell comuns como
findecppara manipular arquivos e diretórios - Aplicar seu conhecimento para resolver tarefas de gerenciamento de arquivos do mundo real
Criar o Script de Coleta de Arquivos
Nesta etapa, você criará um script para copiar arquivos do diretório /etc com o ano de última modificação em 2022 para o diretório /tmp/etc, preservando a estrutura de diretórios.
- Abra um editor de texto e crie um novo arquivo chamado
collect_files.shno diretório/home/labex/project. - Adicione o seguinte código ao arquivo
collect_files.sh:
#!/bin/zsh
## Script: collect_files.sh
## Description: Copies files from the /etc directory with a last modified year in 2022 to the /tmp/etc directory while preserving directory structure.
source_dir="/etc"
target_dir="/tmp"
year="2022"
## Create the target directory
mkdir -p "$target_dir"
## Use the find command to search for files in the source directory with a last modified year in 2022 and copy them to the target directory
find "$source_dir" -type f -newermt "$year-01-01" ! -newermt "$year-12-31" -exec cp --parents --dereference "{}" "$target_dir" \;
echo "File copying completed."
Este script usa o comando find para pesquisar arquivos no diretório /etc que foram modificados pela última vez no ano de 2022. As opções -newermt e ! -newermt são usadas para filtrar os arquivos com base na sua data de última modificação. O comando cp é então usado para copiar os arquivos para o diretório /tmp/etc, preservando a estrutura de diretórios.
- Salve o arquivo.
Testar o Script
Nesta etapa, você testará o script collect_files.sh para garantir que ele esteja funcionando conforme o esperado.
- Abra um terminal e navegue até o diretório
/home/labex/project. - Execute o script com o seguinte comando:
sudo sh collect_files.sh
Este comando executa o script com privilégios elevados, o que é necessário para copiar arquivos do diretório /etc.
- Após a conclusão da execução do script, verifique o diretório
/tmp/etcpara garantir que os arquivos com o ano de última modificação de 2022 foram copiados corretamente. - Verifique se a estrutura de diretórios foi preservada. Por exemplo, se o arquivo
/etc/fstabfoi copiado, você deverá ver o arquivo no caminho/tmp/etc/fstab.
Se o script estiver funcionando conforme o esperado, você concluiu o projeto. Se encontrar algum problema, revise o script e as instruções e faça os ajustes necessários.
Resumo
Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.



