일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 문자열압축
- 알고리즘
- AWS
- 코테
- kafkaconsumer
- c
- github
- 협업도구
- 기술블로그
- 공부기록
- testcode
- 백준
- jwt
- 선택정렬
- 시스템프로그래밍
- 문자열함수
- 기록
- 회고록
- git
- 자바
- 한이음
- IT
- Django
- 자료구조
- SpringSecurity
- kafka
- 트러블슈팅
- codingtest
- 코딩테스트
- java
- Today
- Total
신뇽이 되어보자
2. 디렉터리와 파일 사용하기 본문
2-1 리눅스 파일의 종류와 특징
파일의 종류
- 파일: 관련 있는 정보들의 집합
- 파일을 효과적으로 관리하기 위해 디렉터리 사용
- (사용 목적에 따라)일반 파일, 디렉터리, 심볼릭 링크, 장치 파일
- 일반 파일
- 데이터를 저장하는데 주로 사용
- 각종 텍스트 파일, 실행 파일, 이미지 파일 등
- 실행 파일이나 이미지 파일의 경우 바이너리 형태로 데이터가 저장되어 바이너리 파일이라고 함
- 텍스트 파일은 문서 편집기를 사용하여 내용을 보거나 편집할 수 있으나,
- 실행 파일이나 이미지 파일의 경우 해당 파일의 내용을 확인할 수 있는 특정 응용 프로그램이 있어야 확인할 수 있음
- 디렉터리
- 리눅스에서는 디렉터리도 파일로 취급
- 디렉터리 파일에는 해당 디렉터리에 저장된 파일이나 하위 디렉터리에 대한 정보가 저장
- 심볼릭 링크
- 원본 파일을 대신하여 다른 이름으로 파일 명을 지정한 것(윈도우의 바로가기)
- 장치파일
- 리눅스에서는 하드디스크나 키보드 같은 각종 장치도 파일로 취급
- 일반 파일
파일과 디렉터리 이름 규칙
- 파일과 디렉터리 이름에는 /를 사용할 수 없다.
- 파일과 디렉터리 이름에는 알파벳, 숫자, 붙임표, 밑줄, 점만 사용한다.
- 공백문자, *,|ㅡ”,”,@,#,$,%,^,& 등을 사용하면 안된다.
- 영문자는 대 소문자 구별
- 파일이나 디렉터리 이름이 . 으로 시작하면 숨긴 파일로 간주한다.
2-2 디렉터리 사용 명령
현재 디렉터리 확인
pwd
디렉터리 이동하기
cd
디렉터리 내용보기
ls
-a : 숨긴 파일을 포함하여 모든 파일 목록 출력
-d : 지정한 디렉터리 자체의 정보를 출력한다.
-i : 첫 번째 행에 inode 번호를 출력한다.
-l : 파일의 상세 정보를 출력한다.
-A : .(마침표)와 ..(마침표 두 개)를 제외한 모든 파일 목록을 출력한다.
-F : 파일의 종류를 표시한다.
(* : 실행 파일, /: 디렉터리, @ : 심볼릭 링크, 표시 없음: 일반 파일)
-L : 심볼릭 링크 파일의 경우 원본 파일의 정보를 출력한다.
-R : 하위 디렉터리 목록까지 출력한다.
디렉터리 생성
mkdir
옵션-p : 하위 디렉터리를 계층적으로 생성할 때 중간의 디렉터리가 없으면 생성하면서 전체 디렉터리를 생성한다.
디렉터리 삭제
rmdir
옵션 -p : 지정한 디렉터리를 삭제한 뒤, 그 디렉터리의 부모 디렉터리가 빈 디렉터리일 경우 부모 디렉터리도 자동으로 삭제한다.
2-3 파일 다루기
파일 내용 연속 출력
cat
옵션 -n : 행 번호를 붙여서 출력
신규 파일 생성
cat >
파일의 내용을 다른 파일에 합치기
cat >>
화면 단위로 파일 내용 출력하기
more
옵션: +행번호
파일 뒷부분 출력하기
tail
옵션: +행 번호
-숫자
-f
파일/디렉터리 복사하기 (원본 파일 유지)
cp
-i : 덮어쓸 것인지 물어봄
-r : 디렉터리 복사
- 두 인자가 모두 파일인 경우
- 두 번째 인자가 디렉터리인 경우
- 파일을 해당 디렉터리 아래에 복사
- 원본 파일과 다른 이름으로 복사
- 쓰기 권한이 없는 디렉터리에 파일을 복사하려고 하면?
- 인자를 여러 개 지정할 경우
- -i 옵션 사용하기
- 디렉터리 복사하기 -r
- 두번째 인자가 지정한 디렉터리가 이미 있는 디렉터리일 경우, 원본 디렉터리가 목적지 디렉터리 아래에 원본 디렉터리와 같은 이름으로 복사
파일 이동하기 (원본 파일 유지 X)
mv
옵션: -i
cp와 다른 점 : 디렉터리 이동할 때 -r 사용하지 않음
- 파일을 파일로 이동하기 >> 파일 이름 바꾸기
- 기존에 있는 파일이다? 덮어쓰고 기존 내용 삭제
- 파일을 다른 디렉터리로 이동하기
- 두번째 인자에 디렉터리와 파일명을 함께 지정할 경우?
- mv text1 temp/text2
- 두번째 인자에 디렉터리와 파일명을 함께 지정할 경우?
- 파일 여러 개를 디렉터리로 이동하기
- mv temp/data1.c temp/data2.c /home/user1
- -i옵션 사용하기
- 디렉터리를 디렉터리로 이동하기
- 두 번째 인자가 기존에 있던 디렉터리가 아닐 경우? 디렉터리 명 변경
- 두 번째 인자가 기존에 있던 디렉터리일 경우? 원본 디렉터리가 두 번째 인자로 지정된 디렉터리 아래로 이동한다.
파일 삭제하기
rm
-i
-r
파일 링크
파일 링크는 기존에 있는 파일에 새로운 파일명을 붙이는 것
하드 링크: 기존 파일에 새로운 파일명을 추가로 생성
심벌릭 링크: 원본 파일을 가리키는 새로운 파일을 생성
리눅스 파일의 구성
파일: 파일명+ inode + 데이터 블록
inode :
파일에 대한 정보를 가지고 있는 특별한 구조체
외부적으로는 번호로 표시되고
내부적으로는 파일의 종류 및 크기. 소유자, 파일 변경 시간, 파일명 등
상세 정보와 데이터 블록의 주소를 저장
파일이름은 다르지만 inode 번호가 같다면 같은 파일
하드 링크 만들기: ln
심벌릭 링크 파일 만들기: ln -s
심벌릭 링크의 inode를 보면 원본 파일과 다른 번호
하드링크는 원본파일과 동일
ls -l로 확인해보면 파일의 종류 소문자 l 로 표시됨
파일명도 → 를 사용하여 원본파일이 무엇인지 알려줌
'CS > 시스템프로그래밍' 카테고리의 다른 글
4. 셸 사용 (0) | 2023.06.03 |
---|---|
3. vi 문서편집 (1) | 2023.06.03 |
1. 리눅스 입문 (0) | 2023.06.03 |