신뇽이 되어보자

2. 디렉터리와 파일 사용하기 본문

CS/시스템프로그래밍

2. 디렉터리와 파일 사용하기

신뇽이되고싶은미뇽 2023. 6. 3. 12:50
728x90

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 로 표시됨

파일명도 → 를 사용하여 원본파일이 무엇인지 알려줌

728x90

'CS > 시스템프로그래밍' 카테고리의 다른 글

4. 셸 사용  (0) 2023.06.03
3. vi 문서편집  (1) 2023.06.03
1. 리눅스 입문  (0) 2023.06.03