[Linux] 리눅스(CentOS7)

[Linux] 리눅스의 특수문자 종류와 사용법

ITsubin 2022. 2. 26. 01:44

리눅스에서의 특수문자는 여러 기능들을 지원하고 있습니다.
지난 포스팅에서의 다중 명령어 또한 특수문자에 포함됩니다.

이번 포스팅에서는 특수문자 중 기본적이고, 자주 사용되는 특수문자에 대해서 알아보겠습니다.

 

특수문자  * 


특수문자 *은 문자열 와일드카드라고 하며, 임의의 문자열을 표현하는 특수문자입니다.
아래 예시처럼 특정한 확장자나 이름을 찾는 등 여러 가지 상황에서 사용할 수 있습니다.

[root@localhost back]# ls
1.txt 2.txt cp.exe cp.jpg file
[root@localhost back]# ls *.txt
1.txt 2.txt
[root@localhost back]# ls cp.*
cp.exe cp.jpg
[root@localhost back]#


이 뿐 아니라, 아래처럼 특정 문자가 들어간 파일을 찾는 데에도 사용할 수 있습니다.

[root@localhost back]# ls *l*
file
[root@localhost back]#

 

특수문자 


특수문자 ?는 *과 달리 하나의 문자를 표현하는 특수문자입니다.
아래 예시처럼 특수문자 ?는 문자열이 아닌 하나의 모든 문자만을 표현해주기 때문에 특정 문자가 들어간 파일을 찾거나, 특정 길이의 파일명을 찾을 때 사용할 수 있습니다.

[root@localhost back]# ls
1.txt 2.txt cp.exe cp.jpg file
[root@localhost back]# ls fi?
ls: cannot access fi?: 그런 파일이나 디렉터리가 없습니다
[root@localhost back]# ls fi??
file
[root@localhost back]# ls ?????
1.txt 2.txt

 

특수문자  [ ] 


특수문자 [ ]는 ?와 마찬가지로 하나의 문자를 나타내는 데 사용합니다.
하지만 아래 예시처럼 [ ]는 범위를 지정하여 사용할 수도 있습니다.

[root@localhost back]# ls
1.txt 2.txt 3.txt cp.exe cp.jpg file
[root@localhost back]# ls [1].txt
1.txt
[root@localhost back]# ls [1-2].txt
1.txt 2.txt
[root@localhost back]#

 

특수문자  <, <<, >, >> 


이 특수문자들은 입출력 리다이렉션이라고 합니다. 즉, 입출력의 방향을 바꿔주는 특수문자들입니다.

주로 아래 예시처럼 다른 명령어와 조합하여 파일의 내용을 수정 혹은 추가할 때 사용할 수 있습니다.

[root@localhost back]# cat 1.txt
ABC
[root@localhost back]# echo hello > 1.txt
[root@localhost back]# cat 1.txt
hello
[root@localhost back]# echo world! >> 1.txt
[root@localhost back]# cat 1.txt
hello
world!
[root@localhost back]#
[root@localhost back]# cat 1.txt
ABC
[root@localhost back]# cat > 1.txt
hello
^C
[root@localhost back]# cat 1.txt
hello
[root@localhost back]# cat >> 1.txt
world!
^C
[root@localhost back]# cat 1.txt
hello
world!
[root@localhost back]#

 

특수문자  (\) 

 
특수문자 \는 특수 문자를 일반 문자로 처리할 때 사용합니다. (폰트에 따라 역슬래시나 원표시가 바뀝니다.)
아래 예시처럼 특수문자의 바로 앞에 \을 사용하면 특수문자 대신 일반 문자로 인식하는 것을 확인할 수 있습니다.

[root@localhost back]# ls
*?*.txt 1.txt 2.txt 3.txt cp.exe cp.jpg file
[root@localhost back]# ls *?*.txt
*?*.txt 1.txt 2.txt 3.txt
[root@localhost back]# ls \*?*.txt
*?*.txt
[root@localhost back]#

 

특수문자  ' ' 와 " " 


‘ ’와 “ ” 는 문자열로 만들어주는 기능을 합니다. 이 뿐 아니라 \처럼 문자열 안에 사용된 특수문자를 일반 문자로 처리할 수 있습니다.

[root@localhost back]# ls
*?*.txt 1.txt 2.txt 3.txt cp.exe cp.jpg file
[root@localhost back]# ls *?*.txt
*?*.txt 1.txt 2.txt 3.txt
[root@localhost back]# ls \*?*.txt
*?*.txt
[root@localhost back]# ls '*?*'.txt
*?*.txt
[root@localhost back]# ls "*?*".txt
*?*.txt
[root@localhost back]#


이 두 특수 문자는 ‘ ’은 모든 특수 문자를, “ ”은 $와 \을 제외한 모든 특수 문자를 일반 문자로 처리하는 데 차이점이 있습니다.

 

특수문자  


특수문자 ~는 홈 디렉터리를 나타내는 특수 문자입니다.

cd ~을 사용하면 현재 로그인되어있는 계정의 홈 디렉터리로, cd ~test(계정)을 사용하면 test(계정)의 홈 디렉터리로 이동하는 것을 확인할 수 있습니다.

[root@localhost /]# cd ~
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd ~test
[root@localhost test]# pwd
/home/test
[root@localhost test]#

 

특수문자  


특수문자 – 는 명령어에 옵션을 주는 특수문자이기도 하지만, 이전 디렉터리를 나타내는 특수문자입니다.

( . 은 현재 디렉터리, .. 은 상위 디렉터리를 의미합니다. )
아래 예시처럼 무조건 상위 디렉터리로 이동하는 cd ..과 다르게
cd –를 사용하면 직전에 위치하던 / 디렉터리로 이동하는 것을 확인할 수 있습니다.

[root@localhost /]# cd /home/test
[root@localhost test]# cd -
/
[root@localhost /]# cd /home/test
[root@localhost test]# cd ..
[root@localhost home]# cd .
[root@localhost home]#