[유닉스 이론과 실습] 3장 연습문제
01. 다음 중 명령의 실행 결과 디렉토리 목록이 다른 것 하나를 고르시오. ★
① user1@Salaris11:~/Unix/ch3$ cp -i test1 ttt
② user1@Salaris11:~/Unix/ch3$ ln test1 ttt
③ user1@Salaris11:~/Unix/ch3$ cp test1 ttt
④ user1@Salaris11:~/Unix/ch3$ mv test1 ttt
정답 : ④ user1@Salaris11:~/Unix/ch3$ mv test1 ttt
- cp [옵션] 원본파일명 복사파일명 : 특정 파일이나 디렉토리를 다른 이름으로 복사
-> 옵션
-i : 파일을 덮어쓸 때 경고 메시지 출력
-r : 디렉토리 복사(디렉토리를 복사할 때 무조건 써야 한다.)
- ln [옵션] 원래이름 새이름 : 하나의 파일에 새로운 이름을 붙임. 경로를 다르게 지정할 수 있음.
-> 옵션
-s : 심볼릭 링크 파일 생성(윈도우의 바로가기 아이콘), 안붙이면 하드링크이다.
- mv [옵션] 원래이름 새이름 : 파일 이름을 바꾸거나 이동
-> 옵션
-i : 확인 후 이동
-f : 무조건 강제적으로 삭제
- cp -i test1 ttt : cp -i는 대화식 복사 방법으로, test1을 ttt로 복사하는 것. 만약 존재할 시, 덮어쓸 것인지 물어봄.
- ln test1 ttt : cp test ttt와 같은 명령어
- cp test1 ttt : cp 파일1 파일2는 파일1을 파일2로 복사하는 명령어
- mv test1 ttt : mv는 파일 이름을 바꾸거나 이동하는 명령어로, mv 파일1 파일2는 파일1의 이름을 파일2로 바꿈.
02. 파일의 내용을 보는 명령이 아닌 것은?
① cat
② file
③ more
④ tail
정답 : ② file
- file 파일명 : 지정한 파일의 종류를 알려준다.
- cat/more/tail 파일명 : 지정한 텍스트 파일의 내용 출력
03. 다음 설명 중 틀린 것을 고르시오.
① mv는 파일 이름을 바꾸는 명령이다.
② cp는 파일을 복사하는 명령이다.
③ ln 명령을 이용하면 윈도우의 바로가기 아이콘과 같은 파일을 만들 수 있다.
④ touch 명령으로 파일을 편집할 수 있다.
정답 : ④ touch 명령으로 파일을 편집할 수 있다.
- ln 명령을 이용하면 심볼릭 파일 링크를 생성함으로써 윈도우의 바로가기 아이콘과 같은 파일을 만들 수 있다.
- touch 명령의 기능은 파일의 최종 접근 시간, 최종 수정 시간 변경, 지정한 파일이 존재하지 않으면 새로 생성함
04. 지난 주에 작업을 하면서 생성한 파일이 갑자기 열리지 않는다. 오류 메시지가 다음과 같을 때 그 원인을 바르게 설명한 것을 고르시오.
user1@Salaris11:~/Unix/ch3$ cat ln.sl
cat : cannot open ln.sl : No such file or directory
user1@Salaris11:~/Unix/ch3$ ls
data1 data2 ln.sl@ Practice/ tmp3/ Touch/
user1@Salaris11:~/Unix/ch3$
① 존재하지 않는 파일을 열려고 하였다.
② 파일을 여는 명령이 잘못되었다.
③ 올바른 디렉토리가 아니다.
④ 심볼릭 링크 파일의 원본 파일이 삭제되었다.
정답 : ① 존재하지 않는 파일을 열려고 하였다.
- ln.sl과 ln.sl@은 엄연히 다른 이름이므로 존재하지 않는 파일을 입력하였다.
05. 현재 디렉토리의 모든 파일의 수정 시간을 test 파일의 수정 시간과 일치시키려고 한다. 다음 중 명령을 올바로 기술한 것을 고르시오.
① cp * test
② touch -r test *
③ ln -s test *
④ tail * test
정답 : ② touch -r test *
- touch [옵션] 파일 : 지정한 파일이 존재하지 않으면 생성, 존재하면 현재 시간 또는 지정한 시간으로 변경
-> 옵션
-t : 지정한 시간으로 변경하기(형식 : [[CC]YY]MMDDhhmm[.ss]
-r : 특정 파일 기준으로 변경하기
-m : 수정 시간만 변경하기
-a : 접근 시간만 변경하기
( -a 옵션으로 접근 시간만을 변경하면 ls -l로는 그 결과를 확인할 수 없다.
접근 시간을 보기 위해서 ln명령에 -u 옵션을 사용한다.)
-c : 지정된 파일이 없는 경우 새로 생성하지 않음.
-r ref_file : 시간을 파일에서 읽음.
- 특정 파일 기준으로 변경하기 : - r
특정 파일과 접근, 수정 시간을 일치시키고 싶으면 다음과 같이 -r 옵션을 사용한다.
06. 하드 링크와 심볼릭 링크, 복사 파일을 비교 설명하시오. ★
하드 링크는 한쪽이 영향을 받으면 다른 한 쪽도 영향을 받고, 심볼릭 링크는 원본파일이 삭제시 사용할 수 없고 복사파일은 하나의 파일을 수정해도 다른 파일에 영향을 주지 않는다.
07. 파일의 내용을 보는 세 가지 명령을 적고 각각의 특징을 적으시오. ★
정답 : cat, more, tail
cat : 파일의 내용을 화면에 연속적으로 출력
more : 화면 단위로 파일 내용을 출력
tail : 파일의 맨 뒷부분부터 내용을 출력
08. rmdir 과 rm -r의 차이점을 설명하시오.
정답 : rmdir는 빈 디렉토리가 아니면 삭제할 수 없지만 rm -r은 상관없이 빈 디렉토리가 아니여도 삭제가 가능하다.
09. pwd 명령을 실행하니 현재 위치가 /home/user1이었다. text.txt 파일의 내용을 행 번호를 붙여서 출력하는 명령을 기술하시오.
정답 : cat -n ./Unix/text.txt
cat -n 파일명 : 행 번호를 붙여서 출력
10. 현재 디렉토리 위치를 Unix로 이동하시오.
정답 : cd ./Unix
11. C 디렉토리 아래에 있는 hw.c 파일의 하드 링크 파일을 현재 디렉토리에 만드시오. ★
정답 : ln ../C/hw.c hw.hl
12. Unix 디렉토리의 report 파일을 user2 사용자의 홈 디렉토리로 복사하시오. ★
정답 : cp -r ./report ../../user2
13. C 디렉토리 아래에 test 디렉토리를 생성하시오.
정답 : mkdir ../C/test
14. 위에서 생성한 test 디렉토리 아래에 세 개의 빈파일 a, b, c를 생성하시오.
정답 : touch ../C/test/a ../C/test/b ../C/test/c
15. a의 수정 시간을 /etc/services 파일과 일치시키시오. ★
정답 : touch -r ~/etc/services ../C/test/a
16. 홈 디렉토리로 이동하시오.
정답 : cd ~
17. C 디렉토리 아래에 있는 hw.c 파일을 Unix 디렉토리로 옮기려고 다음과 같이 명령을 입력하였다. 그런데 작업 후 Unix 디렉토리를 보니, 파일 hw.c가 없다. 어떻게 된 일인지 설명하시오.
mv C/hw.c unix
정답 : Unix의 U를 대문자로 쓰지 않고 소문자로 썼기 때문에 오류가 발생하였다.
18. Unix 아래의 모든 파일을, 13번 문제에서 생성한 test 디렉토리로 복사하시오.
정답 : cp ./home/user1/Unix/* ./home/user1/C/test
19. C 디렉토리 아래의 test 디렉토리를 삭제하시오.
정답 : rm -r ./home/user1/C/test