2023.05.25 - [공부/유닉스] - [Unix] 유닉스 이론과 실습: 디렉토리 다루기 (1)
2. 파일 다루기
- 간단한 파일보기 명령; 짧은 파일
- cat
- 기능: 파일 내용을 출력
- 형식: cat [옵션] 파일명 ..
- 옵션
- -n : 행 번호를 붙여서 출력
- 예
- cat file1
- cat /etc/.login
- cat -n /etc/.login
- 행 번호를 같이 출력해줌
- cat
- 파일의 내용을 한 화면씩 출력옵션
- more
- 기능: 파일 내용을 화면 단위로 출력
- 형식: more [옵션] 파일명 ..
- 옵션
- + 행번호
- 출력을 시작할 행 번호를 지정
- 지정한 행부터 출력
- + 행번호
- 명령
- 다음 페이지: space
- 이전 페이지: b
- 종료: q
- 문자열 찾기: /문자열
- 예
- more file1
- more /etc/services
- cat과 차이점
- cat : 파일의 내용을 화면에 연속적으로 출력
- 파일의 크기가 클 경우 내용을 살펴보기 불편함
- more : 화면 단위로 파일 내용을 출력
- cat : 파일의 내용을 화면에 연속적으로 출력
- more
- 실습
- 디렉토리 생성: 현재 디렉토리 확인 후, 실습용 디렉토리 생성 후(하위 포함), 해당 디렉토리로 이동
- pwd
- mkdir -p ch3/Practice
- cd ch3/Practice
- 파일 복사: /etc/service 파일을 실습용 디렉토리에 test.txt 파일로 복사
- cp /etc/service test.txt
- ls -F
- 파일 내용 보기: test.txt 파일 내용 확인
- more test.txt
- 파일 내용 검색하기: 파일 내용 중 DHCP 문자열 찾기
- /DHCP
- 다음 검색하기: 두 번째 DHCP 문자열 찾기
- n 입력
- 내용 보기 종료
- p 입력(more 종료)
- 디렉토리 위치 변경: 실습 디렉토리 빠져 나가기
- cd ..
- 디렉토리 생성: 현재 디렉토리 확인 후, 실습용 디렉토리 생성 후(하위 포함), 해당 디렉토리로 이동
- 특정 파일이나 디렉토리를 다른 이름으로 복사
- cp
- 기능: 파일이나 디렉토리 복사
- 형식: cp [옵션] 원본파일 복사대상
- 옵션
- -i : 대화식(y/n) - 기존에 존재할 경우 내용 덮어쓰기/ 덮어쓸 때 경고메세지
- -r : 디렉토리 복사
- 인자 구성 -사용
- cp 파일 파일: 원본 파일을 새로운 이름의 파일로 복사
- cp 파일 디렉토리/파일: 원본 파일을 지정한 디렉토리 아래로 복사
- cp 파일들 디렉토리: 여러 원본 파일들을 지정한 디렉토리 아래로 복사
- cp -r 디렉토리 디렉토리: 원본 디렉토리를 새로운 이름의 디렉토리로 복사
- 파일 복사
- 파일 → 파일
- 존재 (o)
- 새로 생성
- 존재 (x)
- 기존 내용 없어짐, 복사된 내용만 남음
- 예
- cp /etc/hosts test1
- cp test1 test2
- 존재 (o)
- 파일 → 디렉토리
- 현재 디렉토리(.) 아래에 같은 이름으로 복사
- cp /etc/hosts .
- mkdir temp
- cp hosts temp
- 파일 이름 변경하여 저장
- cp hosts temp/hosts1
- 현재 디렉토리(.) 아래에 같은 이름으로 복사
- 여러개의 파일 → 디렉토리
- 마지막 인자는 반드시 디렉토리명
- cp text1 text2 temp
- 마지막 인자는 반드시 디렉토리명
- 디렉토리 복사
- -r 옵션
- 첫 번째 인자: 디렉토리명
- 하위 디렉토리/파일 모두 복사됨
- 예
- cp -r temp tmp
- 파일 → 파일
- cp
- 지정한 파일, 디렉토리 삭제
- rm
- 기능: 파일 삭제
- 형식: rm [옵션] 파일/디렉토리
- 옵션
- -i : 대화식(y/n)
- -r : 디렉토리 삭제
- 예
- rm file
- rm -r dir
- 특징
- 한 번 삭제된 것은 복구 불가능
- 디렉토리 삭제
- rmdir: 빈 디렉토리가 아니면 삭제 못 함
- rm: 하위 파일까지 강제 삭제 가능
- 주의
- 디렉토리
- rm -r temp
- 하위 디렉토리 삭제 1개씩 (y/n) 물어봄
- rm -ri temp
- 디렉토리
- rm
- 파일 이름을 바꾸거나 이동
- mv
- 기능: 파일 이동/ 이름 변경
- 형식: mv [옵션] 원본 새로운
- 옵션
- i : 대화식(y/n) - 기존 파일일 경우 덮어쓸지
- y: 덮음
- n: 파일 이동 (x)
- 예
- mv file1 file2
- mv file1 dir1
- mv file1 file2 file3 dir1
- 파일 → 파일
- 이름 변경
- 예
- ls -l
- temp
- mv temp data1
- ls -l
- data1
- ls -l
- 파일→ 디렉토리
- 지정한 디렉토리
- mv data1 tmp/data2
- ls -F tmp
- 이름 변경되어 이동됨
- data2
- 특징
- cp 와 마찬가지로 쓰기 권한이 없는 경우 디렉토리 이동 불가
- 지정한 디렉토리
- 여러 개의 파일 → 디렉토리
- tmp 디렉토리에 있던 data1, data2를 현재디렉토리로 이동
- mv tmp/data1 tmp/data2 .
- tmp 디렉토리에 있던 data1, data2를 현재디렉토리로 이동
- 디렉토리 → 디렉토리
- 하위 디렉토리로 들어옴 (두 번째 인자: 존재 O)
- cp -r tmp tmp2
- ls -F
- tmp tmp2/
- mv tmp2 tmp
- ls -F
- tmp/
- ls -F tmp
- tmp2/
- 이름 변경 (두 번째 인자: 존재 X)
- mv tmp tmp3
- ls -F
- tmp3/
- 하위 디렉토리로 들어옴 (두 번째 인자: 존재 O)
- mv
- 실습
- 현재 위치 이동
- pwd
- cd Practice
- 실습용 Temp 디렉토리 생성 후 파일 목록 확인
- mkdir Temp
- ls -F
- test.txt 파일을 Temp 디렉토리 아래로 이동, 이동한 파일의 상세 정보 확인
- mv test.txt Temp
- ls -l Temp
- Temp 디렉토리 이름을 mvTemp로 변경
- mv Temp mvTemp
- ls -ld mvTemp
- mvTemp ************************************디렉토리 삭제
- rm -r mvTemp
- ls
- 실습 디렉토리에서 빠져나간다
- cd ..
- 현재 위치 이동
- 링크
- 하나의 파일 실체에 대해 여러 개의 접근 경로 가능
- 파일 링크 종류
- 하드 링크
- 심볼릭 링크
- ln: 기존 파일에 새로운 이름을 덧붙임
- 기능: 파일의 링크를 생성
- 형식: ln [옵션] 원본파일명 링크파일명
- 옵션
- -s: 심볼릭 링크 파일 생성
- 예
- ln -s test lntest
- 유닉스 파일 구조
- 파일 : 이름, inode, 데이터 블록
- 하드 링크: 이름과 inode 사이의 연결
- stat 명령어
- stat sample.txt
- Links, inode 확인
- stat sample.txt
- 하드 링크
- 하드 링크: 파일에 붙인 이름
- 하드 링크 파일: 이름이 붙여진 파일
- 예
- cat > ln.txt
- ls -l ln.txt
- -rw-r—r— 1 user1 staff 13 Jun 17 22:02 ln.txt
-
- : 일반 파일
- 1 : 하드 링크 수= 파일 이름의 개수
-
- -rw-r—r— 1 user1 staff 13 Jun 17 22:02 ln.txt
- ln ln.txt ln.h1
- Inode, Links 확인
- stat
- ls -il
- stat ln.txt
- Inode: 34 Links: 2
- stat ln.h1
- Inode: 34 Links: 2
- ls -il ln*
- 34 -rw-r—r— 2 user1 staff 13 Jun 17 22:02 ln.txt
- 34 -rw-r—r— 2 user1 staff 13 Jun 17 22:02 ln.h1
- 두 파일 모두 하드 링크 수 2로 증가
- 파일 내용도 복사(동일한 파일- inode 같아야 함)
- inode 번호 동일
- ln.h1**(하드 링크 파일) 내용 수정** → ln.txt(원본) 내용도 변경됨
- rm을 이용하여 파일 1개 삭제
- 하드 파일 링크 수 감소
- 파일 이름만 삭제됨
- 원래 이름을 삭제해도 새로운 이름은 남아있음
- 심볼릭 링크
- 윈도우 바로가기 아이콘
- 파일의 내용: 원본 파일의 경로
- 원본 파일을 삭제하면 심볼릭 링크 파일이 남아있어도 해당 파일 사용 못 함
- -s 옵션
- 예
- ln -s ln.h1 ln.s1
- ls ln*
- -rw-r—r— 1 user1 staff 50 Jun 17 22:02 ln.h1
- lrwxrwxrwx 1 user1 staff 5 Jun 17 22:43 ln.s1 → ln.h1
- 예
- 특징(하드 링크와 차이점)
- 파일 종류: l , 심볼릭 링크로 표시
- 하드 링크 수: 1, 이름 추가가 아님
- 파일 이름: 파일 이름 뒤에 원본 파일의 이름이 표시(→ ln.h1)
- inode 번호: inode 번호가 다른 별개의 파일임
- 특징(하드 링크와 공통점)
- 심볼릭 파일을 수정하면 원본이 수정됨
- pwd >> ln.s1
- cat ln.s1
- 심볼릭 파일을 수정하면 원본이 수정됨
728x90
'공부 > 유닉스' 카테고리의 다른 글
[Unix] 유닉스 이론과 실습: 프로세스 종류 (inetd, httpd, nfsd, sshd, named, lpd) (0) | 2023.05.25 |
---|---|
[Unix] 유닉스 이론과 실습: 파일 접근 권한 관리하기 (4) (0) | 2023.05.25 |
[Unix] 유닉스 이론과 실습: 배시 셸 활용하기 (3) (0) | 2023.05.25 |
[Unix] 유닉스 이론과 실습: 디렉토리 다루기 (1) (0) | 2023.05.25 |
[Unix] 유닉스 이론과 실습: 솔라리스 설치- 유닉스 가상머신 (0) | 2023.04.17 |