[shell script] for문으로 디렉토리 내 파일들 하나씩 읽기

HYEOB KIM·2022년 4월 18일
0

Shell

목록 보기
20/71

와일드카드를 이용해 디렉토리 내의 파일 리스트를 for문을 이용해 순서대로 조회할 수 있습니다.

아래의 형식을 통해 파일 경로 내의 파일들을 하나씩 조회할 수 있습니다.

for 변수 in 파일경로/*
do
	commands
done

이를 활용해서 해당 파일 경로 내의 파일을 하나씩 조회하면서
파일/디렉토리의 경우를 분류해서 echo 처리해보겠습니다.

$ cat test1
#!/bin/bash
for file in $HOME/devops/Ansible/*
do
        if [ -d $file ]
        then
                echo "$file is directory"
        elif [ -f $file ]
        then
                echo "$file is file"
        fi
done

$ ./test1
/home/hyeob/devops/Ansible/Ansible_실습_환경_구축 is directory
/home/hyeob/devops/Ansible/Ansible_AWS_메타데이터_상세.md is file
/home/hyeob/devops/Ansible/Ansible_상세(facts).md is file
/home/hyeob/devops/Ansible/Ansible_인벤토리.md is file
/home/hyeob/devops/Ansible/Ansible_플레이북.md is file
/home/hyeob/devops/Ansible/Ansible_조건문.md is file
/home/hyeob/devops/Ansible/Ansible_핸들러.md is file
/home/hyeob/devops/Ansible/Ansible_반복문.md is file
/home/hyeob/devops/Ansible/Ansible_애드혹_명령어.md is file
/home/hyeob/devops/Ansible/Ansible_모듈.md is file
/home/hyeob/devops/Ansible/Ansible_변수.md is file
/home/hyeob/devops/Ansible/Ansible_소개.md is file
/home/hyeob/devops/Ansible/Ansible_설치.md is file
/home/hyeob/devops/Ansible/Playbook is directory

TIP
파일 경로를 적어줄 때 2개 이상의 파일 경로를 지정하기 위해서는
for 변수 in 파일경로1/* 파일경로2/.b*
와 같이 띄어쓰기를 기준으로 나열하면 됩니다.

profile
Devops Engineer

0개의 댓글