확장

Aelan·2024년 11월 28일

Linux 초보

목록 보기
11/14

경로명 확장 (*, ?)

리눅스에서의 '*' 연산자는 글로벌 패턴 매칭(Global Pattern Matching) 또는 와일드카드(Wildcard)로 사용됩니다. 이를 통해 파일이나 디렉토리의 경로를 확장하는 데 활용됩니다.리눅스 셸에서 파일이나 디렉토리를 매칭하고 확장하는 데 유용합니다.

echo *.txt (작업중인 디렉토리에서 .txt로 끝나는 파일/디렉토리를 찾아줌)
echo a* (a로 시작하는 파일/디렉토리를 찾아줌)
echo *b*(b를 포함한 파일/디렉토리를 찾아줌)

'?' 는 리눅스 셸에서 단일 문자 하나를 의미하는 와일드카드입니다.
?는 글로벌 패턴 매칭(Global Pattern Matching)을 수행할 때 사용되며
파일 및 디렉토리 이름에서 정확히 한 자리의 문자와 매칭됩니다.

echo app?.css (작업중인 디렉토리에서 app이름뒤에 하나의 문자아 있는.css 파일들을 찾아준다. app.css 해당이 안된다!)

'[]'는 문자 집합(Character Class)을 지정하는 와일드카드로
특정 위치에서 하나의 문자를 선택하도록 제어할 때 사용됩니다.
이 연산자는 리눅스 셸 명령어에서 파일 이름이나 디렉토리 이름 매칭에 주로 사용됩니다.

ls file[123].txt
file명 뒤에 1 또는 2 또는 3 이 오며 확장자가 .txt 파일을 찾음
[abc]	a, b, c 중 하나와 매칭	filea, fileb
[a-z]	a에서 z 사이의 문자와 매칭	filea, filez
[0-9]	0에서 9 사이의 숫자와 매칭	file1, file7
[a-cx-z]	a, b, c, x, y, z와 매칭	filea, filez
[-abc]	-, a, b, c와 매칭	file-, fileb

[!abc]	a, b, c를 제외한 문자와 매칭	filex, file1
[^abc]  a, b, c를 제외한 문자와 매칭	filex, file1

응용

echo *.???  (해당 디렉토리에서 확장자가 3글자인 파일들을 찾아준다.)
echo [abc]*.txt (a,b,c로 시작하며 .txt 확장자인 파일들을 찾아준다)
echo [^abc]*.txt (a,b,c로 시작하는 .txt 확장자인 파일들을 제외한 나머지들을 찾아준다)

틸드 확장

:틸드 확장(Tilde Expansion)은 리눅스 셸에서 사용자가 입력한 '~'를
특정 디렉토리 경로로 자동 변환해주는 기능입니다.
이는 주로 사용자의 홈 디렉토리와 관련된 경로를 간편하게 지정하기 위해 사용됩니다.

~ :현재 사용자의 홈 디렉토리 cd ~ /home/username
~username : 특정 사용자의 홈 디렉토리 cd ~john /home/john
~+ : 현재 작업 디렉토리 echo ~+ 현재 작업 중인 디렉토리 경로 (PWD)
~- : 이전 작업 디렉토리 echo ~- 이전 디렉토리 경로 (OLDPWD)


중괄호의 확장

:리눅스 셸에서의 {}는 확장(Brace Expansion) 또는 목록 생성에 사용되는 구문입니다.
이를 통해 명령어나 파일 이름의 패턴을 간단히 정의하고, 여러 값을 생성할 수 있습니다.

echo {a,b,c}_Planner.txt 
{} 중괄호안에 ',' 구분되어 있는 문자열과 중괄호 앞 뒤에 있는 문자열과 합친 모든 경우의 수가 나온다

echo {1..31}_Planner.txt 
'..' 을 사용하여 범위 설정 가능

echo {1..31..2}_Planner.txt 
'..' 로 구분된 세번째 값을 사용하면 범위 간격 설정 가능

echo {a..e} 문자 또한 가능하다
{x,y{1..3},x}
중괄호 확장의 중첩 또한 가능하다


산술확장

: 리눅스 셸에서 산술 확장(Arithmetic Expansion)은 $(()) 구문을 사용하여 정수 산술 연산을 수행하는 기능입니다. 이를 통해 기본적인 덧셈, 뺄셈, 곱셈, 나눗셈 등 산술 연산을 명령어나 스크립트에서 간편하게 사용할 수 있습니다.

연산자 기능 예제 결과

  • 덧셈 $((5 + 2)) 7
  • 뺄셈 $((5 - 2)) 3
  • 곱셈 $((5 * 2)) 10
  • / 나눗셈 (정수 연산) $((5 / 2)) 2
  • % 나머지 연산 $((5 % 2)) 1
  • 거듭제곱 (일부 셸만 지원) $((2 3)) 8

0개의 댓글