지정된 시간의 파일 수집

LinuxBeginner
지금 연습하기

소개

이 프로젝트에서는 마지막 수정 연도가 2022 년인 /etc 디렉토리의 파일을 /tmp/etc 디렉토리로 디렉토리 구조를 유지하면서 복사하는 방법을 배우게 됩니다.

🎯 과제

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

  • 파일 복사 프로세스를 자동화하는 스크립트 생성 방법
  • 마지막 수정 날짜를 기준으로 파일을 검색하기 위해 find 명령어를 사용하는 방법
  • 디렉토리 구조를 유지하면서 파일을 복사하기 위해 cp 명령어를 사용하는 방법

🏆 성과

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

  • 마지막 수정 날짜를 기준으로 특정 디렉토리에서 파일을 복사하는 프로세스를 자동화합니다.
  • findcp와 같은 일반적인 셸 명령어를 사용하여 파일 및 디렉토리를 조작하는 방법을 이해합니다.
  • 실제 파일 관리 작업 해결에 지식을 적용합니다.

파일 수집 스크립트 생성

이 단계에서는 마지막 수정 연도가 2022 년인 /etc 디렉토리의 파일을 /tmp/etc 디렉토리로 디렉토리 구조를 유지하면서 복사하는 스크립트를 생성합니다.

  1. 텍스트 편집기를 열고 /home/labex/project 디렉토리에 collect_files.sh라는 새 파일을 생성합니다.
  2. 다음 코드를 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 명령어를 사용하여 2022 년에 마지막으로 수정된 /etc 디렉토리의 파일을 검색합니다. -newermt! -newermt 옵션은 마지막 수정 날짜를 기준으로 파일을 필터링하는 데 사용됩니다. 그런 다음 cp 명령어를 사용하여 디렉토리 구조를 유지하면서 파일을 /tmp/etc 디렉토리로 복사합니다.

  1. 파일을 저장합니다.
✨ 솔루션 확인 및 연습

스크립트 테스트

이 단계에서는 collect_files.sh 스크립트가 예상대로 작동하는지 확인하기 위해 테스트합니다.

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

이 명령어는 /etc 디렉토리에서 파일을 복사하는 데 필요한 권한으로 스크립트를 실행합니다.

  1. 스크립트 실행이 완료된 후 /tmp/etc 디렉토리를 확인하여 마지막 수정 연도가 2022 년인 파일이 올바르게 복사되었는지 확인합니다.
  2. 디렉토리 구조가 유지되었는지 확인합니다. 예를 들어, /etc/fstab 파일이 복사된 경우 /tmp/etc/fstab 경로에서 해당 파일을 볼 수 있어야 합니다.

스크립트가 예상대로 작동하면 프로젝트가 완료된 것입니다. 문제가 발생하면 스크립트와 지침을 검토하고 필요한 조정을 수행하십시오.

✨ 솔루션 확인 및 연습

요약

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