-
[Bash] 파일 루프 및 조건문 활용Bash 2023. 10. 26. 21:54반응형
파일 루프 및 조건문 활용
파일 루프 및 조건문을 사용하면 디렉토리 내의 파일을 반복하고 파일에 대한 특정 작업을 수행할 수 있습니다. 예를 들어, 특정 디렉토리에서 .txt 확장자를 가진 파일을 찾아내고 그 파일들을 처리하는 스크립트를 작성해보겠습니다.
예제 1: 모든 .txt 파일의 목록 출력#!/bin/bash # 특정 디렉토리에 있는 .txt 파일을 찾아내어 목록을 출력 directory="/path/to/your/directory" for file in "$directory"/*.txt; do if [ -f "$file" ]; then echo "파일: $file" fi done
for file in "$directory"/*.txt: 디렉토리 내의 모든 .txt 파일에 대한 루프를 시작합니다.
if [ -f "$file" ]: 현재 파일이 실제 파일인지 확인합니다. (디렉토리나 심볼릭 링크가 아닌지)
echo "파일: $file": 파일 이름을 출력합니다.
예제 2: .log 파일을 .txt로 변환
이번에는 .log 확장자를 가진 파일을 찾아 .txt 확장자로 변경하는 스크립트를 작성해보겠습니다.#!/bin/bash # 특정 디렉토리에 있는 .log 파일을 .txt로 변경 directory="/path/to/your/directory" for file in "$directory"/*.log; do if [ -f "$file" ]; then new_file="${file%.log}.txt" # .log 확장자를 .txt로 변경 mv "$file" "$new_file" echo "변경된 파일: $new_file" fi done
new_file="${file%.log}.txt": 현재 파일의 이름에서 .log 확장자를 .txt로 변경합니다.
mv "$file" "$new_file": 파일 이름을 변경합니다.
예제 3: .jpg 파일을 압축
이번에는 .jpg 확장자를 가진 이미지 파일을 찾아서 압축하는 스크립트를 작성해보겠습니다.#!/bin/bash # 특정 디렉토리에 있는 .jpg 파일을 압축 directory="/path/to/your/directory" for file in "$directory"/*.jpg; do if [ -f "$file" ]; then zip_file="${file%.jpg}.zip" # .jpg 파일을 .zip으로 압축 zip -j "$zip_file" "$file" echo "압축된 파일: $zip_file" fi done
zip_file="${file%.jpg}.zip": 현재 파일의 이름에서 .jpg 확장자를 .zip으로 변경합니다.
zip -j "$zip_file" "$file": 파일을 .zip으로 압축합니다.반응형'Bash' 카테고리의 다른 글
[Bash] 문자열 조작 (1) 2023.10.26 [Bash] 반복문 활용 (0) 2023.10.26 [Bash] 함수 활용 (0) 2023.10.26 [Bash] 조건문 및 비교 연산자 활용 (0) 2023.10.26 [Bash] 배열 다루기 (0) 2023.10.26