Введение
В этом проекте вы научитесь копировать файлы из директории /etc, которые были последним раз изменены в 2022 году, в директорию /tmp/etc, сохраняя при этом структуру директорий.
🎯 Задачи
В этом проекте вы научитесь:
- Создавать скрипт для автоматизации процесса копирования файлов
- Использовать команду
findдля поиска файлов по дате их последнего изменения - Использовать команду
cpдля копирования файлов с сохранением структуры директорий
🏆 Достижения
После завершения этого проекта вы сможете:
- Автоматизировать процесс копирования файлов из определенной директории в зависимости от их даты последнего изменения
- Разобраться, как использовать общие команды shell, такие как
findиcp, для управления файлами и директориями - Применить свои знания для решения реальных задач управления файлами
Создайте скрипт для сбора файлов
В этом шаге вы создадите скрипт для копирования файлов из директории /etc, которые были последним раз изменены в 2022 году, в директорию /tmp/etc, сохраняя при этом структуру директорий.
- Откройте текстовый редактор и создайте новый файл с именем
collect_files.shв директории/home/labex/project. - Добавьте в файл
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."
Этот скрипт использует команду find для поиска файлов в директории /etc, которые были последним раз изменены в 2022 году. Параметры -newermt и ! -newermt используются для фильтрации файлов по дате их последнего изменения. Затем команда cp используется для копирования файлов в директорию /tmp/etc, сохраняя при этом структуру директорий.
- Сохраните файл.
Проверьте скрипт
В этом шаге вы проверите скрипт collect_files.sh, чтобы убедиться, что он работает как ожидается.
- Откройте терминал и перейдите в директорию
/home/labex/project. - Запустите скрипт с помощью следующей команды:
sudo sh collect_files.sh
Эта команда запускает скрипт с повышенными привилегиями, что необходимо для копирования файлов из директории /etc.
- После завершения работы скрипта проверьте директорию
/tmp/etc, чтобы убедиться, что файлы с датой последнего изменения в 2022 году были скопированы правильно. - Убедитесь, что структура директорий сохранена. Например, если файл
/etc/fstabбыл скопирован, вы должны увидеть файл по пути/tmp/etc/fstab.
Если скрипт работает как ожидается, вы завершили проект. Если вы столкнулись с какими-либо проблемами, проверьте скрипт и инструкции и внесите необходимые изменения.
Резюме
Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.



