타임스탬프 추가
Coddy Terminal 여정의 기초 섹션에 포함된 레슨. 82개 중 78번째.
챌린지
쉬움타임스탬프를 추가하여 백업 폴더 이름을 고유하게 만들어 봅시다. 이렇게 하면 각 백업이 이전 백업을 덮어쓰는 대신 새 폴더를 생성합니다.
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"를 사용하여 동적인 폴더 이름을 만드세요.
직접 해보기
cat > backup.sh << 'EOF'
#!/bin/bash
read -p "Enter source directory: " source_dir
echo "Backing up: $source_dir"
backup_dir="backup"
mkdir -p "$backup_dir"
echo "Created backup folder: $backup_dir"
cp "$source_dir"/* "$backup_dir"
echo "Files copied successfully"
EOF
echo "documents" | bash backup.sh
ls backup기초의 모든 레슨
직접 연습해 보세요: Terminal 플레이그라운드