Linux,Unix,BSD

[shell] 특정 폴더 아래의 모든 파일에 대한 작업 스크립트

채윤아빠 2024. 5. 14. 08:21
728x90
반응형

개요

리눅스에서 작업할 때, 특정 폴더 아래에 있는 모든 파일들에 대하여 반복적으로 특정 작업을 수행할 일이 종종 있어서 관련 스크립트 템플릿을 작성하여 공유합니다.


작업 스크립트

특정 폴더 아래에 있는 모든 파일들에 대하여 특정 작업을 수행하는 스크립트는 아래와 같습니다.

#!/bin/bash

# 대상 폴더 경로
target_dir="/path/to/parent/dir"

# 대상 폴더 내의 모든 파일 처리
for file in "$target_dir"/*; do
    # 파일인 경우에만 처리
    if [ -f "$file" ]; then

        # 여기에 실제로 수행할 작업을 추가하세요.
        echo "$file"
    fi
done


하위 폴더까지 모두 반복하기 위해서는 다음과 같이 재귀 호출을 통하여 작업을 수행할 수 있습니다.

#!/bin/bash

# 대상 폴더 경로
target_dir="/path/to/parent/dir"

# 폴더별 처리할 작업 함수
process_folder() {
    local folder="$1"
    echo "Processing folder: $folder"

    # 대상 폴더 내의 모든 파일 처리
    for file in "$folder"/*; do
        # 파일인 경우에만 처리
        if [ -f "$file" ]; then

            # 여기에 실제로 수행할 작업을 추가하세요.
            echo "$file"
        fi
    done
}

# 상위 폴더의 하위 폴더를 재귀적으로 탐색
explore_folders() {
    local dir="$1"

    # 현재 폴더 처리
    process_folder "$dir"

    # 하위 폴더들 탐색
    for subfolder in "$dir"/*; do
        if [ -d "$subfolder" ]; then
            explore_folders "$subfolder"
        fi
    done
}

explore_folders "$target_dir"

결론

위 스크립트 템플릿을 활용하면, 특정 폴더 아래에 있는 모든 파일들에 대하여 반복적인 작업을 자동화할 수 있습니다.