티스토리 뷰
파일 이름 대치
- 다뤄야 할 파일 이름이 많은 경우(ex. 현재 디렉토리의 모든 .c 확장자를 가진 파일) 모두 명시하기 힘들다.
- 대표문자 (wildcard character)를 이용해 한 번에 여러 파일들을 나타냄
대표문자 | 의미 |
* | 빈 문자열을 포함하여 임의의 문자열을 나타냄 |
? | 임의의 한 문자를 나타냄 |
[..] | 대괄호 사이의 문자 중 하나를 나타내며 부분범위 사용 가능 |
- 원리: 쉘이 명령어를 실행하기 전에 대표문자를 그 대표문자가 나타내는 파일 이름들로 먼저 대치하고 실행된다.
$ gcc *c
-> 현재 디렉터리에 (a.c, b,c, test.c ) 이렇게 파일 3개가 있다면
$ gcc a.c b.c, test.c 와 같이 파일 이름이 대치되어 실행됨
명령어 대치 (Command substitution)
- 어떤 명령어를 실행할 때 다른 명령어의 실행 결과를 이용할 수 있다
- 역따옴표( `) 를 사용하면 그 부분은 명령어의 실행 결과로 대치된 후에 실행된다.
$ echo 현재 시간은 `date `
현재 시간은 2020. 10. 16 (금) 17:41:48 KST
$ echo 현재 디렉터리 내의 파일의 개수 : `ls | wc -w `
현재 디렉터리 내의 파일의 개수 : 32
대치 기능의 제한 --> 따옴표 사용!
- 작은 따옴표(' ')는 대표문자 대치, 변수 대치, 명령어 대치를 모두 제한한다.
- 큰 따옴표(" ")는 대표문자 대치만 제한한다.
- 따옴표가 중첩되면 바깥에 있는 따옴표가 효력을 갖는다.
- 필요성
$ echo 3 * 4 = 12
3 a.c b.c test.c
대표문자 대치 * 기호가 현재 디렉터리 내의 파일로 대치되어 버림..
$ echo '3 * 4 = 12'
$ echo "3 * 4 = 12"
3 * 4 = 12
작은 따옴표( ' ' ) 나 큰 따옴표(" ") 를 이용해 대표문자 대치 제한
- 작은 따옴표와 큰 따옴표 차이
$ name=나가수
// 작은 따옴표 = 대표문자 대치 제한, 번수 대치 제한, 명령어 대치 제한
$ echo '내 이름은 $name 현재 시간은 `date`'
내 이름은 $name 현재 시간은 `date`
// 큰 따옴표 = 대표문자 대치 제한
$ echo "내 이름은 $name 현재 시간은 `date`"
내 이름은 나가수 현재 시간은 2016. 11. 11 (금) 10:27:48 KST
작은 따옴표 사용한 경우, $name 이라는 변수 값 대치 제한과, `date`명령어 대치를 제한함
큰 따옴표를 사용한 경우, 변수대치와 명령어대치는 이루어지지 않음. (변수는 앞에 $을 붙여 변수값으로 출력되고, `(역따옴표)를 사용한 명령어 대치도 그대로 실행됨)
'Linux' 카테고리의 다른 글
[Linux] 프로세스 제어 - sleep, 전면처리, 후면처리, 종료, wait, 우선순위 (0) | 2020.10.17 |
---|---|
[Linux] 프로세스 (Process) - ps, pgrep (0) | 2020.10.17 |
[Linux] 여러 개의 명령어 사용 - 명령어 열, 그룹, 조건 명령어 열 (0) | 2020.10.16 |
[Linux] 입력, 출력재지정, 오류재지정, 파이프 (0) | 2020.10.16 |
[Linux] 전면처리와 후면처리 (0) | 2020.10.16 |