구조 보존하며 대용량 파일 복사하기

LinuxBeginner
지금 연습하기

소개

이 프로젝트에서는 /etc 디렉토리에서 10K 보다 큰 파일을 /tmp/etc 디렉토리로 복사하는 방법을 배우게 됩니다. 이때 디렉토리 구조를 유지합니다. 이는 Linux 시스템에서 파일을 관리하고 정리하는 데 유용한 기술입니다.

🎯 과제

이 프로젝트에서 다음을 배우게 됩니다:

  • 파일 크기를 기반으로 파일을 복사하는 스크립트를 만드는 방법
  • 특정 기준을 충족하는 파일을 찾기 위해 find 명령어를 사용하는 방법
  • 파일을 복사할 때 디렉토리 구조를 유지하는 방법
  • sudo를 사용하여 권한을 높여 스크립트를 실행하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다:

  • 파일 크기를 기반으로 파일 복사 프로세스를 자동화할 수 있습니다.
  • 파일을 복사할 때 디렉토리 구조를 유지할 수 있습니다.
  • 특정 기준을 충족하는 파일을 효과적으로 찾기 위해 find 명령어를 사용할 수 있습니다.
  • 보호된 파일 및 디렉토리에 접근하기 위해 권한을 높여 스크립트를 실행할 수 있습니다.

복사 스크립트 생성

이 단계에서는 /etc 디렉토리에서 10K 보다 큰 파일을 /tmp/etc 디렉토리로 복사하는 스크립트를 생성합니다.

  1. 텍스트 편집기를 사용하여 /home/labex/project 디렉토리에서 copy.sh 파일을 엽니다.
  2. 다음 코드를 파일에 추가합니다:
#!/bin/zsh

## This script copies files larger than 10K from a source directory to a target directory.

## Define the source directory and target directory
source_dir="/etc"
target_dir="/tmp"

## Create the target directory if it doesn't exist
mkdir -p "$target_dir"

## Use the find command to locate files larger than 10K and copy them to the target directory
find "$source_dir" -type f -size +10k -exec cp --parents --dereference "{}" "$target_dir" \;

echo "File copying complete."
  1. 파일을 저장합니다.

이 단계에서는 /etc 디렉토리에서 10K 보다 큰 파일을 /tmp/etc 디렉토리로 복사하고 디렉토리 구조를 유지하는 copy.sh 스크립트를 생성했습니다.

✨ 솔루션 확인 및 연습

복사 스크립트 실행

이 단계에서는 copy.sh 스크립트를 실행하여 파일을 복사합니다.

  1. 터미널을 열고 /home/labex/project 디렉토리로 이동합니다.
  2. 다음 명령을 사용하여 스크립트를 실행합니다:
sudo sh copy.sh

이렇게 하면 권한을 높여 스크립트가 실행되므로, labex 사용자가 접근할 수 없는 파일도 복사할 수 있습니다.

  1. 스크립트가 완료될 때까지 기다립니다. 스크립트가 완료되면 "File copying complete." 메시지가 표시됩니다.

이 단계에서는 copy.sh 스크립트를 실행하여 /etc 디렉토리에서 10K 보다 큰 파일을 /tmp/etc 디렉토리로 복사했습니다.

✨ 솔루션 확인 및 연습

복사된 파일 검증

이 단계에서는 파일이 올바르게 복사되었는지 확인합니다.

  1. 파일 관리자를 열고 /tmp/etc 디렉토리로 이동합니다.
  2. 디렉토리 구조와 복사된 파일을 확인합니다. 디렉토리 구조가 유지되었고, 10K 보다 큰 파일만 복사되었는지 확인할 수 있습니다.
  3. 터미널에서 ls -l 명령을 사용하여 /tmp/etc 디렉토리의 파일과 크기를 나열할 수도 있습니다.

이 단계에서는 /etc 디렉토리에서 /tmp/etc 디렉토리로 파일이 올바르게 복사되었는지 확인했습니다.

축하합니다! /etc 디렉토리에서 /tmp/etc 디렉토리로 10K 보다 큰 파일을 복사하고 디렉토리 구조를 유지하는 프로젝트를 성공적으로 완료했습니다.

✨ 솔루션 확인 및 연습

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.