728x90

[ 과제1 ]

 

3주차 내용 문서화

- 포인터

- 포인터와 참조의 차이

- 함수의 인자 전달방식(call by value, call by address, call by reference)

 

 

 

1. 포인터

 

포인터란 어떠한 값을 저장하는 게 아닌 메모리 주소를 저장하는 변수이다.

& : 주소 연산자

* : 역참조 연산자 (포인터가 가리키는 메모리 안의 값)

 

 

1-1) 포인터 선언 및 초기화 

 

포인터 변수가 가지고 있는 주소를 가리키는 '변수'의 데이터를 읽을 때, 자료형에 따라 읽는 바이트의 량이 달라진다.

int 형은 4byte, char 형은 1byte, double 형은 8byte 만큼 읽는다.

추가적으로 char은 문자 1개를 의미하고(예시: a, b, i 등), string은 문자를 의미하는 것으로 자료형의 크기는 기본 28byte 이다. (예시: total, result etc)

 

즉 'int 포인터'는 'int형에 대한 포인터'를 의미한다.

다시 말해 포인터 변수의 자료형은 가리키는 변수의 자료형과 같아야한다.

 

포인트를 사용시 일반 변수와 마찬가지로 선언 시 초기화가 되지 않으므로, 초기화 되지 않은 값은 쓰레기 값이다.

그러므로 포인터를 NULL로 초기화 해주는 것이 좋다.

 

 

1-2) 포인터 연산 

 

포인터 = &변수

 

int p = 25 (주소값 : 0073FB2C) 라 할 때

int *ptr = &p

 

-> ptr은 값으로 p의 변수 값의 주소를 가지고 있다. 즉 ptr은 007FB2C 값을 갖고 있는 것이라 할 수 있다.

 

 

1-3) 포인터 변수의 크기

 

일반적으로 포인트 변수의 크기는 32비트(4바이트)로 동일하다.

int형이 4 바이트, char형이 1바이트, doubld형이 8바이트이다.

 

1-4) 포인터의 필요성

 

번거로운 포인터의 사용하는 이유는 무엇일까? 

 

1. 배열은 포인터를 사용하여 구현되기 때문에, 포인터는 배열을 반복할 때 사용할 수 있다. c++에서 동적으로 메모리를 할당할 수 있는 유일한 방법이다.

 

2. 데이터를 복사하지 않고도 많은 양의 데이터를 함수에 전달할 수 있다. 

 

3. 데이터를 복사의 방식이 아닌 많은 양의 데이터를 함수에 전달할 수 있다.

 

4. 함수를 매개 변수로 다른 함수에 전달하는 데 사용할 수 있다.

 

 

 

2. 포인터와 참조의 차이점

 

2-1) 참조(레퍼런스)의 개념

 

참조는 자신이 참조하는 변수를 대신할 수 있는 또 하나의 이름으로 별명같은 것이다.

 

참조는 &을 이용하여 선언을 하게 되는데,

이미 선언된 변수의 앞에 & 연산자가 오면 주소 값의 반환을 명령하는 뜻이지만,

새로 선언되는 변수의 이름 앞에 오면 참조의 선언을 뜻하게 된다.

 

2-2) 포인터와 참조(레퍼런스)의 차이

 

차이점을 알아보기 전에 포인터와 참조의 공통점은 무엇일까? 바로 모두 대상을 가리킬 때 사용하는 변수타입이다.

 

그렇다면 포인터와 참조(레퍼런스)의 차이점은 무엇일까?

 

가장 크게 나타나는 두 가지 차이점은

 

첫 번째, Null의 허용 여부로 포인터는 Null 값을 허용하지만, 참조는 Null 값이 될 수 없다. 즉 Null 값이 없다.

여기서 Null 값이란, 결정되지 않거나 모르는 값을 의미하는 데, 참조는 선언과 동시에 초기화를 해야 하기 때문에 Null값이 없다.

 

두 번째, 참조 대상 할당 및 접근의 차이점으로 참조자는 변수를 입력 받고, 포인터는 주소값을 입력 받는다.

그리고 참조자는 한번 지정한 객체를 변경할 수 없지만, 포인터의 경우 주소값을 변경하는 경우 객체를 변경할 수 있다.

 

 

 

3. 함수의 인자 전달 방식

 

3-1) call by value

: 값에 의한 전달

 

함수 호출 측(주로 main)의 실 매개변수는 함수 측(형식 매개 변수)으로 값만 전달하는 것으로 함수로 값을 전달하면 그 값이 함수의 매개변수에 복사가 되며 함수 내에서 값을 아무리 바꿔도 원본의 값은 바뀌지 않게 된다.

 

위의 코드를 쳤을 때,

아래와 같은 실행화면이 나온다.

 

 

3-2) call by address

: 주소에 의한 전달

 

우선 함수에 매개변수로 포인터형 변수를 선언하고, 그 포인터 변수의 공간에 원본의 주소값을 복사하게 된다, 

그 후 주소를 참조하여 가르키는 곳의 값을 변경하게 되면 원본의 데이터가 수정이 된다.

 

위의 코드를 쳤을 때,

아래와 같은 실행화면이 나온다.

 

 

3-3) call by reference

: 참조에 의한 전달

 

call by reference라는 rjtdms c에는 애초제 없고, c++에서 등장한 참조의 개념이다.

 

함수가 호출이 되는 시기에 매개변수인 참조 변수가 받앙오는 변수의 별명으로서 초기화가 이루어 진다.

즉 참조 변수는 메모리 공간을 따로 할당 받는 것이 아닌 원본 변수의 별명으로써 존재하게 된다. 

참조 변수는 그 변수 자체를 참조하여 값을 변경할 수 있기 때문에 함수 내에서 값을 변경해도 원본 변수의 값 또한 바뀌게 되는 성질을 가지고 있다.

 

위의 코드를 쳤을 때,

아래와 같은 실행화면이 나온다.

 

 

[ 과제2 ]

 

github.com/kimminseong777/c-_week3/blob/main/project2

'Language > C언어' 카테고리의 다른 글

[ c++ week4 ] 과제1,2  (0) 2021.05.16
[ c++ ] 재제출 영화 선택 과제  (0) 2021.05.10
[ C++ week3 ] 과제2 재제출  (0) 2021.05.08
[ c++ ] cstring 함수 재제출  (0) 2021.04.03
[c++] string class 함수  (0) 2021.03.30
728x90

주어진 a,b 파일을 활용하여 유틸리티 명령어 각 옵션별로 실습하여 캡처하기 

grep v,w 옵션 검색 후 문서화하기.

 

 

1. 유틸리티 명령어

 

1-1) grep 명령어

 

grep은 Global Regular Expression Print의 약자로 텍스트 파일에서 원하는 문자열이 들어간 행을 찾아 출력하는 명령어이다.

 

(+ Regular Expression, 또 다른 말로는 정규 표현식으로 특정 규칙을 가진 문자열 집합을 표현하기 위한 형식 언어로써, 주로 문자열 패턴 매칭을 검사하거나 문자열을 치환하기 위해 사용된다.

 

하나 이상의 파일로부터 프로그램 수정 등을 위해 변수, 또는 함수명을 찾는데 유용하게 사용되며,

log 파일에서 특정 날짜, 문자로 기록된 error 메세지를 찾는데 유용하게 사용된다.

 

grep 문법은 

grep 옵션 [문자열] [파일명] 이다.

 

여기서 [문자열]은 사용자가 찾으려는 단어 또는 구를 나타내고, [파일명]은 검색 대상 파일이다.

 

먼저 옵션을 포함하지 않은 grep 명령어를 실행해보자.

 

 

 

위에 실행화면을 해석하자면, grep 2020 a / grep 2020 b 는 a, b 파일에 '2020' 을 검색하는 것이다.

 

위 그림 처럼 a,b 파일을 따로따로 grep 명령어를 통해 검색할 수 있고,

grep 2020 a b 라 하게 되면 한번에 두 파일에서 검색한 결과값을 얻을 수 있다.

 

 

 

 

1-2) grep 옵션

 

grep 명령어에 옵션이 있다.

 

(1) -i : 비교시 대소문자를 구별하지 않고 출력한다.

 

 

 

위에 그림을 보게 되면, 옵션 -i를 작성하지 않은 것과 한 것을 비교하자면, 

작성하지 않은 것에는 a,b 파일에 'yellow' 문자열을 검색하였을 때, 완전히 동일한 문자열을 가진 행을 출력하게 된다.

하지만 -i를 작성하게 된다면, 'yellow' 문자열에서 대소문자 구별 없이 'yellow'와 'Yellow'를 모두 출력하게 된다.

 

(2) -l : 문자(패턴)가 들어간 파일 이름을 출력한다.

 

옵션이 없는 grep 명령어는 문자열(패턴)과 일치하는 내용을 출력하게 되는데, 

 

옵션 -l 추가한 grep 명령어는 아래 그림과 같이 '2020' 이라는 문자열이 들어간 파일 이름을 출력하게 된다.

 

(3) -c : 문자와 일치하는 줄의 수 출력한다.

 

옵션 -c는 패턴을 포함하는 파일의 이름 : 패턴 일치 개수 형식으로 출력이 된다.

 

 

 

(4) -n : 줄의 번호와 내용을 같이 출력한다.

 

아래 그림을 보면 옵션 -n이 없을 때는 줄 번호 없이 'purple' 문자 검색한 내용만 출력이 되는 반면,

-n 옵션이 붙게 되면, 내용과 함께 각 a,b 파일에 'purple'이라는 문자가 몇 번째 줄에 있는지 줄 번호까지 출력하게 된다.

 

 

 

 

1-3) 정규표현식

 

(1) ^ : ^[문자열]으로 쓰며, 문자열로 행이 시작되는 경우를 출력한다.

 

(2) r.. : r로 시작해서 뒤에 2개의 문자열이 있는 모든 행을 출력한다.

여기서 r이 아니라 e..으로 변경한다면, e로 시작해서 뒤에 2개의 문자열이 있는 모든 행을 출력하게된다.

 

 

 

 

(3) j*y : j를 0번 이상 반복하고, y로 끝나는 문자열을 출력한다.

* : 바로 앞의 것을 0번이상 반복한다.

 

[]*[] 형식에서 앞에 []가 0번이상 반복된다는 것은 문자열에 앞의 [] 문자는 없어야 한다는 뜻이고, 뒤 []로 끝나는 문자열이어야 한다.

 

 

 

 

(4) [a-z] : 파일에서 a부터 z로 시작하는 단어를 모두 찾아 출력한다.

 

아래 그림을 보게 되면 [a-z]뒤에 k가 붙게 되는데

의미는 a부터 z까지의 문자 중 하나 뒤에 k가 붙은 문자열이 있는 모든 행을 출력하라는 뜻이다.

 

여기서 [a-d]가 된다면 파일에서 a,b,c,d로 시작하는 단어를 모두 찾으라는 뜻이 된다.

 

 

 

 

(5) [^'문자'] : 앞에 '문자'가 붙지않는 문자열이 있는 모든 행을 출력한다.

[^ ]는 [^ ] 내의 문자를 제외한 나머지 문자를 의미한다

 

그래서 아래 그림을 보게 되면,

[^rmut]e 은 r,m,u,t 를 제외한 문자들 뒤에 e가 붙어 있는 문자열이 있는 모든 행을 출력하게 된다.

 

 

 

1-4) 추가 옵션

 

(1) grep -v [문자열] : 지정된 문자열과 일치하지 않는 행만 출력한다.

 

아래 그림을 본다면 a, b 파일에서 "b"라는 문자열이 들어가지 않은 행을 출력한 화면이다. 

 

 

 

(2) grep -w [문자열] : 문자열이 전체 단어와 일치하는 행만 출력한다. 

 

아래 그림을 보면 a,b 파일에 "green"라는 문자열과 완전히 동일한 문자열을 가진 행들만 출력을 하게 되는데,

이때 대소문자를 구분해서 출력하게 된다.

 

 

 

'자기개발 > Linux' 카테고리의 다른 글

[ Linux week5 ] 과제 1,2,3  (0) 2021.05.18
[ Linux week4 ] 과제1,2  (0) 2021.05.16
[ Linux week3 ] 과제2, 과제3  (0) 2021.05.04
[ Linux 2주차 ] 과제 재제출  (0) 2021.05.03
[ Linux 2주차 ] 과제4  (0) 2021.04.27
728x90

[과제 2]

 

 

추가적인 파일 유틸리티 관련 명령어인 cmp, diff,sort, split, paste 등을 알아보자.

 

명령어들을 알아보기 앞서 유틸리티란? 

 

리눅스에는 윈도우에서 사용되는 대부분의 소프트웨어를 대체할 만큼의 많은 무료 소프트웨어들을 제공하는데,

이때 이 무료 소프트웨어를 유틸리티라한다.

 

1. 파일 비교 명령어

 

1-1) cmp

 

: 두 개의 파일을 바이트(문자) 단위로 비교하여 출력하는 명령어이다.

 

(+ 리눅스에서의 파일의 용량이 기본 바이트 단위로 잡히며, 바이트 단위는 c이다.)

 

cmp [옵션] 파일명1 파일명2

 

*옵션

-b : 두 파일 간의 다른 바이트를 출력한다. 

 

-l : 두 파일 간의 다른 문자 위치와 문자를 출력한다.

 

-s : 아무 것도 출력하지 않고 실행 결과 코드만 반환한다.

 

 

1-2) diff

 

: 두 개의 파일을 행 단위로 비교하여 다른 부분을 출력하는 명령어 / 

두 개의 파일명을 매개변수로 사용하여 화면에 차임점을 나열하는 명령어.

 

diff [옵션] 파일명1 파일명2 / diff [옵션] 디렉터리1 디렉터리2

 

*옵션

-b : 연속된 공백을 무시한다.

 

-r : 두 디렉터리의 차이점을 출력한다.

 

-i :  대소문자를 구분하지 않은다.

 

 

-s : 두 파일이 같은지 확인한다.

 

diff 명령어는 두 파일이 모두 일치할 때는 어떠한 값도 출력하지 않는다.

위에 있는 두 a ,b 파일은 모두 다르기 때문에 어떤 옵션을 넣더라도 같은 값이 출력된다.

 

 

2. 파일 정렬 명령어

 

2-1) sort

: 사용자가 지정한 파일의 내용을 정렬하거나 정렬된 파일의 내용을 병합할 때 사용한다.

 

sort 옵션 [파일명]

 

cat 명령어를 이용해서 a, b 텍스트 파일을 출력한다.

sort 명령어를 사용하면 오름차순으로 정령된다. 

 

sort 옵션 [파일명] 와 같이 파일 정령 명령어로 

cat a b | sort 로도 사용할 수 있다.

 

2-2) sort 옵션

 

(1) -r, --reverse : 역순으로 정렬한다.

(2) -f, --ignore-case : 대소문자를 구분하지 않고 정렬한다.

위에 sort 명령어를 입력했을 때와 달리 대문자 Y 가 소문자 y와 같은 취급을 했다는 점이 -f 옵션의 특징이라 할 수 있다.

 

 

(3) -k, --key=POS1: -k 옵션으로 해당 필드를 기준으로 정렬할 수 있다.

 

-k는 정렬할 열을 지정을 하는데 -k 2는 두 번째 필드를 기준으로 정렬하여 출력하겠다는 의미이고,

 

-k 4는 네 번째 필드를 기준으로 정렬하여 출력한다.

 

-k 옵션을 사용할 떄 유의할 점은 -k 뒤에 정렬 기준이 될 필드를 지정해주어야 한다는 점이다.

 

 

(4) -t, --field-separator=SEP : -t 옵션 뒤에 필드 구분자를 지정해서 정렬할 수 있으며, -k 옵션과 같이 사용할 수 있다.

 

sort -t, a b

 

-t 옵션을 사용해 콤마(,)를 구분자로 지정해서 정렬 후 출력한다.

-k 옵션과 같이 사용해서 정렬할 수 있다. 

아래 그림을 보면 -k 옵션에 따라 두 번째 필드 값으로 정렬되었다.

 

 

(5) -u, --unique : -u 옵션을 사용하게 되면 정렬한 후에 중복된 값이 제거가 된다.

추가적으로 uniq 명령어 사용시 연속적인 중복값만 제거된다. 

아래 그림에서는 a,b  두 텍스트 파일 간 중복된 값이 없어 제거가 되지 않았다.

 

 

 

3. 파일 분할 명령어

 

3-1) split 명령어

: 용량이 큰 데이터, 파일들을 적절한 용량으로 분할해서 처리한다.

로그가 계속 쌓여 커지는 환경에서 파일을 분리해주는 split 명령어는 유용하다.

 

split 명령어가 파일을 분할하는 명령어이니만큼, 대용량 파일이 준비가 되었는지  확인하는 명령어로 ls -tlr 명령어를 입력한다.

내 계정 속 가장 큰 대용량 파일로 크기가 4096인 파일이 있다. 

 

split [파일명] [새로운 파일명 지정]

기본적으로 1000줄 단위로 파일을 잘라서 나눠짖게 되는데, 원본 파일은 사라지지 않는다.

 

3-2) split 옵션

 

(1) -b : 파일을 원하는 바이트 크기 단위로 분할하는 옵션

 

split -b [원하는 바이트 크기] [파일] [새로운 파일명]

 

파일을 줄 수가 아닌 특정 크기만큼 분할하고 싶은 경우, b 옵션을 사용하면 된다.

 

아래 그림을 보면 b 텍스트 파일을 20바이트 크기로 분할하고 싶다는 명령어이고,

 

실제로 ls -li 를 통해 크기 20바이트로 분할되었다는 것을 확인할 수 있다. 역시 원본 파일은 남아있게 된다.

 

4. 파일 입출력 정리 명령어

 

4-1) paste 

: 여러 텍스트 파일을 수평적으로 합치는 명령어 

 

paste [옵션] [파일명]

 

아래 그림을 보면 paste에 a,b 텍스트 파일을 사용하면 다음과 같이 출력된다.

 

4-2) paste 옵션

 

(1) -s : 한 파일의 내용을 먼저 연속적으로 수평으로 출력한 후 다음 파일을 덧붙여 출력한다.

 

(2) -d : 결합하는 라인의 구분자를 지정할 수 있다. 기본값은 탭문자로 아래 그림은 ','을 사용해 출력되었다.

 

아래 그림에서 사용된 \n 은 키보드로 앤터키로 수직적으로 텍스트 파일 값을 정렬할 수 있다.

-s ,-d 옵션은 개별적으로 사용이 가능하며, 함께 사용할 수도 있다.

 

 

(3) - < : 칼럼 수를 지정할 수 있다. 

- < 옵션은 하나의 열으로 텍스트 파일이 정렬되며, '-' 의 개수에 따라 열의 개수가 달라진다.

- - < 일 때 두 개의 열로 정렬되며, - - - < 일 때는 세 개의 열로 정렬된다.

 

(4) 표준 입력 사용하기

cat 명령어를 사용하여 a 텍스트 파일이 출력이 되고,

pipe 명령어를 통해 paste 명령어에 -d 옵션이 더해져 구분자 ':' 가 더해져 출력된 a 텍스트 파일 뒤에 구분자 ':' 다음 b 파일이 출력이 된다.

 

 

[ 과제3 ]

 

과제2 문서화 글 마지막에 알아본 5가지 명령어 중 하나 이상을 넣어 pipe 실습한 내용 추가

 

1. pipe 명령어 '|'

: 명령어의 출력과 명령어의 입력을 연결시켜주는 것으로,

어떠한 프로세스의 출력이 그 다음 프로세스의 입력이 되는 것을 말한다.

 

(1) cat - sort

 

cat 명령어를 이용해서 a 텍스트 파일을 출력하게 되면, 출력한 내용을 입력으로 받게 된다면,

입력된 내용을 정렬하고자 할 때에는 sort 명령어를 파이프로 이어주면 된다.

여기서 더 나아가 정령된 내용들 중에서 중복된 것들을 제거하고 싶을 때 또 한번 uniq명령어를 파이프로 연결시키면 된다.   cat 명령어로 출력된 값이 sort 명령어로 정렬이 되어, uniq 명령어로 인해 중복이 삭제되는 출력값이 파이프 연결로 인해 입력값이 될 수 있다.

 

 

(2) find - sort

 

먼저 find 명령어를 통해서 '..'라는 이름의 디렉토리만을 검색한 출력값을 파이프 명령어를 통해 sort 명령어로 입력시켜서 -k 2 두 번째 필드를 기준으로 정렬하는 것을 나타낸 것이다.

 

 

(3) ls - sort

 

ls -al 명령어로 현재 디렉토리에 있는 파일 목록 모두를 자세히 출력한다.

 

그 다음에, 이 결과값을 이용해서, 이름을 사전순으로 정렬하려 할 때, 파이프로 연결을 하면 된다.

ls -al 의 출력 결과를 sort 명령어의 입력으로 주게 된다. 

sort -k 9 은 9번째 필드, 즉 파일, 폴더 이름을 기준으로 오름차순으로 정렬하게된다.

 

ls -al |sort -k 9 에서 더 나아가 화면에 10개만 출력한다고 한다면 head 명령어를 이용해서 

ls -al |sort -k 9|head -n 10 이라는 명령어로 나타낼 수 있겠다.

그렇다면 위에 있는 그림에서는 .config까지만 출력이 될 것이다.

 

 

 

'자기개발 > Linux' 카테고리의 다른 글

[ Linux week4 ] 과제1,2  (0) 2021.05.16
[ Linux week3 ] 과제1  (0) 2021.05.04
[ Linux 2주차 ] 과제 재제출  (0) 2021.05.03
[ Linux 2주차 ] 과제4  (0) 2021.04.27
[ Linux 2주차 ] 과제3  (0) 2021.04.27

728x90

1.루트 디렉토리, /home 디렉토리, 사용자 홈 디렉토리(~) 파일 시스템 구조 기록으로 시작

2.사용자 홈 디렉토리에 swing29을 저장한 swing.txt 파일을 만든다.

3.사용자 홈 디렉토리에 practice 디렉토리 생성한다.

4.사용자 홈 디렉토리에 linux를 저장한 sky.txt 파일을 만든다.

5.사용자 홈 디렉토리에 swing.txt의 하드 링크를 만든다.

6.사용자 홈 디렉토리에 sky.txt심볼릭 링크를 만든다.  

 

에 대하여 작성하려 한다.

 

 

 

1. 루프 디렉토리, /home 디렉토리, 사용자 홈 디렉토리(~)의 파일 시스템 구조 기록으로 시작 

 

솔직한 심정으로 이 문장을 정확히 이해하지 못하였다.

루프 디렉토리, /home 디렉토리, 사용자 홈 디렉토리(~) 이 세 가지 디렉토리를 기록하라는 뜻인건지. 

파일 시스템 구조를 기록하는 다른 명령어가 따로 있는 건지 명확히 이해가 되지 않았다.

 

 

2. 사용자 홈 디렉토리 swing29를 저장한 swing.txt 파일을 만든다.

 

vi 편집기 명령어로 swing_.txt 파일을 만든다.

여기서 swing.txt 파일이 있는 관계로 swing_.txt 파일로 대체하게 되었다.

 

vi 편집기를 실행하게 되면 명령모드로 들어가게 되는데 이때 "i"나 "a" 명령을 통해 입력모드로 넘어갈 수 있다.

입력모드에서 swing_.txt 파일에 넣을 swing29를 입력하고 [Esc]로 명령모드로 전환한 다음 ":" 입력 후

wq를 입력하면 현재까지 내가 작성한 내용을 저장하고 vi가 종료 된다.

q,q!를 입력하게 된다면 바로 종료가 된다.

 

ls 명령을 사용하여 디렉토리에 swing_.txt와 swing29.txt가 잘 생성되었는지 확인할 수 있다. 

 

 

3.사용자 홈 디렉토리에 practice 디렉토리 생성한다.

 

touch 명령어를 이용해서 빈 파일인 practice 디렉토리를 생성한다. 

이는 ls 명령어를 사용하여 디렉토리에 있는 practice 파일을 확인 할 수 있다.

 

 

4.사용자 홈 디렉토리에 linux를 저장한 sky.txt 파일을 만든다.

 

위에 swing_.txt 파일과 같은 방법으로 vi 명령어를 입력하여 sky.txt 파일 안에 linux 라는 내용이 들어갈 수 있게

명령모드에서 "i","a" 입력해서 입력모드로 바꾸어서 내용 입력하고 [Esc]키로 명령모드로 전환 후 vi를 종료한다.

 

생성된 파일은 ls 명령어를 사용해 디렉토리에 있는 내용을 확인 할 수 있다.

 

 

5.사용자 홈 디렉토리에 swing.txt의 하드링크를 만든다.

 

하드링크는 파일을 가리키는 이름을 하나 더 만드는 것이라 생각하면 된다.

 

하드링크 명령은 cp명령과 별다른 차이가 없지만, 다른 명령어 이므로 주의를 해야할 점이 있다.

파일 swuni.c를 생성하고 하드링크 swing..txt 를 생성하면, 원본인 파일 swuni.c를 지우더라도 하드링크 swing..txt는 내용을 간직하고 있다.

 

하드링크 명령어를 구현하려면 

 

ln [원본] [하드링크 파일명]

 

을 작성해야 한다.

 

 

6.사용자 홈 디렉토리에 sky.txt 심볼릭 링크를 만든다.  

 

심볼릭 링크는 어떤 파일을 가리키고 있는 파일을 말한다.

파일 A의 심볼릭 링크를 만드마녀, 'ln -s A B'를 이용해 만들 수 있다.

아래 예시를 대입하자면 practice가 파일 A이고, s.k.y.txt가 파일 B이다.

 

심볼릭 링크는 파일 practice를 수정하면 심볼릭 링크 s.k.y.txt도 수정된다.

그 반대로 심볼릭 링크 s.k.y.txt 를 수정해도 원본파일인 practice 가 수정된다.

 

 

'자기개발 > Linux' 카테고리의 다른 글

[ Linux week3 ] 과제2, 과제3  (0) 2021.05.04
[ Linux 2주차 ] 과제 재제출  (0) 2021.05.03
[ Linux 2주차 ] 과제3  (0) 2021.04.27
[ Linux 2주차 ] 과제 2  (0) 2021.04.27
[Linux 2주차] 과제1  (0) 2021.04.27

+ Recent posts