1 λΆ„ μ†Œμš”

λ¦¬λˆ…μŠ€μ—μ„œ νŒŒμΌμ„ μƒμ„±ν•˜κ±°λ‚˜ μ§€μšΈ λ•Œ, ν•œ λ²ˆμ— μ—¬λŸ¬ νŒŒμΌμ„ 닀루고 싢을 λ•Œκ°€ μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ μœ μš©ν•œ 도ꡬ가 λ°”λ‘œ 브레이슀 ν™•μž₯κ³Ό κΈ€λ‘œλΉ™(파일 νŒ¨ν„΄ 맀칭)μž…λ‹ˆλ‹€. 잘 λͺ¨λ₯΄κ³  μ–Όλ ˆλ²Œλ ˆ μ‚¬μš©ν–ˆλ”λ‹ˆ, μ–΄λŠ μ‹œμ λΆ€ν„°λŠ” ν˜Όλž€μŠ€λŸ¬μ› μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ, λ³Έ ν¬μŠ€νŒ…μ„ 톡해 두 κ°œλ…μ˜ 차이와 μ‹€μ œ μ‚¬μš© 예제λ₯Ό μ‹€μŠ΅ μ€‘μ‹¬μœΌλ‘œ μ •λ¦¬ν•˜κ² μŠ΅λ‹ˆλ‹€.


πŸ“˜ 1. 브레이슀 ν™•μž₯ (Brace Expansion)

  • λ¬Έμžμ—΄μ„ 반볡적 κ·œμΉ™μœΌλ‘œ ν™•μž₯ν•  λ•Œ μ‚¬μš©
  • λͺ…령을 μ‹€ν–‰ν•˜κΈ° μ „, 셸이 λ¨Όμ € λ¬Έμžμ—΄μ„ 생성

βœ… 문법

{μ‹œμž‘..끝}
{문자,문자,...}

βœ… 예제

touch file{1..5}.txt

πŸ‘‰ κ²°κ³Ό: 파일 생성

$ ls
file1.txt  file2.txt  file3.txt  file4.txt  file5.txt

주의: 브레이슀 ν™•μž₯은 μ‹€μ œ μ‘΄μž¬ν•˜λŠ” 파일과 λ¬΄κ΄€ν•˜κ²Œ λ¬Έμžμ—΄ ν™•μž₯


πŸ“˜ 2. κΈ€λ‘œλΉ™ (Globbing)

  • 파일 이름을 νŒ¨ν„΄μœΌλ‘œ λ§€μΉ­ν•΄μ„œ μ‹€μ œ μ‘΄μž¬ν•˜λŠ” νŒŒμΌμ„ 처리
  • 셸이 λͺ…λ Ή μ‹€ν–‰ 전에 νŒŒμΌμ‹œμŠ€ν…œμ—μ„œ μ‹€μ œ 파일 λͺ©λ‘μ„ μ°Ύμ•„μ„œ 필터링

βœ… μ£Όμš” νŒ¨ν„΄

νŒ¨ν„΄ μ„€λͺ…
* λͺ¨λ“  λ¬Έμžμ—΄ (0개 이상)
? μž„μ˜μ˜ ν•œ κΈ€μž
[abc] a,b,c 쀑 ν•˜λ‚˜
[a-z] aλΆ€ν„° z 사이
[^a-z] a-zλ₯Ό μ œμ™Έν•œ 문자

βœ… 예제

ls *.txt

πŸ‘‰ ν˜„μž¬ λ””λ ‰ν† λ¦¬μ˜ .txt 파일 λͺ¨λ‘ λ‚˜μ—΄

rm file[1-3].txt

πŸ‘‰ file1.log,file2.log,file3.log만 μ‚­μ œ

ls file?.csv

πŸ‘‰ file1.csv, filea.csv λ“± μ •ν™•νžˆ ν•œ κΈ€μž 차이 λ‚˜λŠ” 파일만 맀칭

κΈ€λ‘œλΉ™μ€ 파일이 μ‹€μ œ μ‘΄μž¬ν•΄μ•Ό λ™μž‘ μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©΄ 아무 결과도 λ‚˜μ˜€μ§€ μ•ŠμŒ


πŸ” 브레이슀 vs κΈ€λ‘œλΉ™ 비ꡐ

ν•­λͺ© 브레이슀 ν™•μž₯ κΈ€λ‘œλΉ™
λͺ©μ  λ¬Έμžμ—΄ μ‘°ν•© 생성 파일 이름 νŒ¨ν„΄ 맀칭
μž‘λ™ μ‹œμ  셸이 λͺ…λ Ή μ‹€ν–‰ μ „ ν™•μž₯ 셸이 파일 μ‹œμŠ€ν…œ 탐색 ν›„ ν™•μž₯
μ‹€μ œ 파일 ν•„μš” μ—¬λΆ€ ❌ ν•„μš” μ—†μŒ β­• ν•„μš”ν•¨
μ˜ˆμ‹œ file{1..3}.txt β†’ file1.txt file2.txt file3.txt file[1-3].txt β†’ μ‹€μ œ μžˆλŠ” 파일 μ€‘μ—λ§Œ 맀칭

μΉ΄ν…Œκ³ λ¦¬:

μ—…λ°μ΄νŠΈ:

λŒ“κΈ€λ‚¨κΈ°κΈ°