타임스탬프 추가
Coddy Terminal 여정의 기초 섹션에 포함된 레슨. 82개 중 78번째.
챌린지
쉬움타임스탬프를 추가해 백업 폴더 이름을 고유하게 만들어 보세요. 이렇게 하면 이전 폴더를 덮어쓰는 대신 백업할 때마다 새 폴더가 만들어집니다.
backup.sh를 다시 작성해 전체 업데이트된 스크립트를 담도록 하세요(이전 강의의 버전을 보려면 cat backup.sh를 실행하세요).
- 이전 강의의 스크립트에서 나머지 모든 줄은 그대로 유지하세요.
- 고정된
backup_dir="backup"을 타임스탬프가 포함된 동적 이름으로 바꾸세요. date명령과 명령 치환을 사용해YYYYMMDD_HHMMSS형식의 타임스탬프를 생성하세요.- 백업 폴더 이름은
backup_[timestamp]여야 합니다.
형식 지정자를 사용한 date 명령으로 타임스탬프를 만들 수 있습니다.
date +%Y%m%d_%H%M%S명령 치환 $(command)을 사용해 이 출력을 변수에 저장하세요.
timestamp=$(date +%Y%m%d_%H%M%S)
backup_dir="backup_$timestamp"줄마다
echo를 하나씩 사용해 여러 줄 스크립트를 작성해도 되지만, 더 짧은 방법이 있습니다. here document를 사용하면 닫는 단어가 나올 때까지의 모든 내용을 파일에 바로 입력할 수 있습니다.cat > script.sh << 'EOF' #!/bin/bash echo "hello" EOF
'EOF'를 둘러싼 따옴표는 파일을 작성하는 동안$variables가 확장되지 않도록 합니다. 스크립트 자체에서 이 변수를 사용하는 경우 이렇게 해야 합니다.
입력으로 documents를 사용해 스크립트를 실행하세요(echo "documents" | bash backup.sh). 출력은 다음과 비슷해야 합니다.
Backing up: documents
Created backup folder: backup_20240115_143052
Files copied successfully출력에 표시되는 타임스탬프는 현재 날짜와 시간에 따라 달라집니다.
힌트:
backup_dir을 정의하기 전에timestamp=$(date +%Y%m%d_%H%M%S)를 추가한 다음,backup_dir="backup_$timestamp"를 사용해 동적인 폴더 이름을 만드세요.
직접 해보기
echo 'cp "$source_dir"/* "$backup_dir"' >> backup.sh
echo 'echo "Files copied successfully"' >> backup.sh
echo "documents" | bash backup.sh
ls backup기초의 모든 레슨
직접 연습해 보세요: Terminal 플레이그라운드