Копирование больших файлов с сохранением структуры

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом проекте вы научитесь копировать файлы размером более 10 КБ из директории /etc в директорию /tmp/etc, сохраняя структуру директорий. Это полезный навык для управления и организации файлов в системе Linux.

🎯 Задачи

В этом проекте вы научитесь:

  • Создавать скрипт для копирования файлов в зависимости от размера
  • Использовать команду find для поиска файлов, соответствующих определенным критериям
  • Сохранять структуру директорий при копировании файлов
  • Запускать скрипт с повышенными привилегиями с использованием sudo

🏆 Достижения

После завершения этого проекта вы сможете:

  • Автоматизировать процесс копирования файлов в зависимости от размера
  • Сохранять структуру директорий при копировании файлов
  • Эффективно использовать команду find для поиска файлов, соответствующих определенным критериям
  • Запускать скрипты с повышенными привилегиями для доступа к защищенным файлам и директориям

Создайте скрипт копирования

В этом шаге вы создадите скрипт, который скопирует файлы размером более 10 КБ из директории /etc в директорию /tmp/etc.

  1. Откройте файл copy.sh в директории /home/labex/project с использованием текстового редактора.
  2. Добавьте в файл следующий код:
#!/bin/zsh

## Этот скрипт копирует файлы размером более 10 КБ из исходной директории в целевую директорию.

## Определите исходную директорию и целевую директорию
source_dir="/etc"
target_dir="/tmp"

## Создайте целевую директорию, если она не существует
mkdir -p "$target_dir"

## Используйте команду find для поиска файлов размером более 10 КБ и скопируйте их в целевую директорию
find "$source_dir" -type f -size +10k -exec cp --parents --dereference "{}" "$target_dir" \;

echo "Копирование файлов завершено."
  1. Сохраните файл.

В этом шаге вы создали скрипт copy.sh, который скопирует файлы размером более 10 КБ из директории /etc в директорию /tmp/etc, сохраняя структуру директорий.

Запустите скрипт копирования

В этом шаге вы запустите скрипт copy.sh для копирования файлов.

  1. Откройте терминал и перейдите в директорию /home/labex/project.
  2. Запустите скрипт с использованием следующей команды:
sudo sh copy.sh

Это запустит скрипт с повышенными привилегиями, позволяя скопировать файлы, к которым у пользователя labex может не быть доступа.

  1. Подождите, пока скрипт завершится. Когда скрипт закончится, вы должны увидеть сообщение "Копирование файлов завершено".

В этом шаге вы запустили скрипт copy.sh для копирования файлов размером более 10 КБ из директории /etc в директорию /tmp/etc.

Проверьте скопированные файлы

В этом шаге вы проверите, были ли файлы скопированы правильно.

  1. Откройте файловый менеджер и перейдите в директорию /tmp/etc.
  2. Просмотрите структуру директории и скопированные файлы. Вы должны увидеть, что структура директорий сохранена, и скопированы только файлы размером более 10 КБ.
  3. Вы также можете использовать команду ls -l в терминале, чтобы вывести список файлов и их размеров в директории /tmp/etc.

В этом шаге вы проверили, что файлы были скопированы правильно из директории /etc в директорию /tmp/etc.

Поздравляем! Вы успешно завершили проект по копированию файлов размером более 10 КБ из директории /etc в директорию /tmp/etc, сохраняя структуру директорий.

✨ Проверить решение и практиковаться

Резюме

Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.