소개
이 프로젝트에서는 마지막 수정 연도가 2022 년인 /etc 디렉토리의 파일을 /tmp/etc 디렉토리로 디렉토리 구조를 유지하면서 복사하는 방법을 배우게 됩니다.
🎯 과제
이 프로젝트에서 다음을 배우게 됩니다:
- 파일 복사 프로세스를 자동화하는 스크립트 생성 방법
- 마지막 수정 날짜를 기준으로 파일을 검색하기 위해
find명령어를 사용하는 방법 - 디렉토리 구조를 유지하면서 파일을 복사하기 위해
cp명령어를 사용하는 방법
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다:
- 마지막 수정 날짜를 기준으로 특정 디렉토리에서 파일을 복사하는 프로세스를 자동화합니다.
find및cp와 같은 일반적인 셸 명령어를 사용하여 파일 및 디렉토리를 조작하는 방법을 이해합니다.- 실제 파일 관리 작업 해결에 지식을 적용합니다.
파일 수집 스크립트 생성
이 단계에서는 마지막 수정 연도가 2022 년인 /etc 디렉토리의 파일을 /tmp/etc 디렉토리로 디렉토리 구조를 유지하면서 복사하는 스크립트를 생성합니다.
- 텍스트 편집기를 열고
/home/labex/project디렉토리에collect_files.sh라는 새 파일을 생성합니다. - 다음 코드를
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 디렉토리로 복사합니다.
- 파일을 저장합니다.
스크립트 테스트
이 단계에서는 collect_files.sh 스크립트가 예상대로 작동하는지 확인하기 위해 테스트합니다.
- 터미널을 열고
/home/labex/project디렉토리로 이동합니다. - 다음 명령으로 스크립트를 실행합니다:
sudo sh collect_files.sh
이 명령어는 /etc 디렉토리에서 파일을 복사하는 데 필요한 권한으로 스크립트를 실행합니다.
- 스크립트 실행이 완료된 후
/tmp/etc디렉토리를 확인하여 마지막 수정 연도가 2022 년인 파일이 올바르게 복사되었는지 확인합니다. - 디렉토리 구조가 유지되었는지 확인합니다. 예를 들어,
/etc/fstab파일이 복사된 경우/tmp/etc/fstab경로에서 해당 파일을 볼 수 있어야 합니다.
스크립트가 예상대로 작동하면 프로젝트가 완료된 것입니다. 문제가 발생하면 스크립트와 지침을 검토하고 필요한 조정을 수행하십시오.
요약
축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



