본문 바로가기
  • 산에서 자라는 아침의 나무
  • 산에서 자라는 아침의 나무
Linux and Unix/SHELL

리눅스, 윈도우에서 확장자에 따른 파일 목록 작성하기

by 산에서 자라는 아침의 나무 2023. 2. 18.

시스템을 사용하거나 운영하다 보면 디렉토리의 파일 확장자별 목록을 작성해야 하는 경우가 발생한다.
이런 경우에 사용할 수 있는 쉘스크립트와 command를 사용해 보자

리눅스 쉘(SHELL)에서 확장자별 파일 목록 작성

# with a bash for loop

for f in /home/data/*.wav; 
	do echo "file '$f'" >> mylist.txt; 
done

# or with printf

printf "file '/home/data/%s'\n" *.wav > mylist.txt

위의 쉘을 실행하면 mylist.txt에는 다음과 같은 내용으로 기록된다.
file '/home/data/1.wav'
file '/home/data/2.wav'
file '/home/data/3.wav'
file '/home/data/4.wav'
file '/home/data/5.wav'

그리고 mylist.txt 파일은 명령어를 실행하는 경로에 생성된다.

file 이라는 글자와 /home/data/ 를 제외하고 순수하게 파일명만 저장하고 싶다면 다음과 같이 수정한다.

# with a bash for loop
cd /home/data/
for f in *.wav; 
	do echo "'$f'" >> mylist.txt; 
done

# or with printf
cd /home/data/
printf "'%s'\n" *.wav > mylist.txt

위와 같이 수정했을 경우에 mylist.txt 파일은 /home/data에 생성되고, mylist.txt 내부에는 파일명만 기록된다.

윈도우(즈)에서 확장자별 파일 목록 작성

(for %i in (*.wav) do @echo file '%i') > mylist.txt

윈도우즈에서도 경로 이동이나 실행 위치, 파일 생성위치는 리눅스와 동일하게 동작한다.
단, 파일을 찾아서 리스트로 만드는 명령 구문만 다르다.

댓글