RECENT POSTS

최근에 작성한 글

01 / 03

전체 글

전체 보기

[Linux] 파일과 디렉터리

1. 파일 시스템(File System)

파일에 대한 정보를 관리하는 소프트웨어이다.

운영체제의 요청을 받아 파일을 저장 장치에 저장하고,
운영체제가 저장된 파일을 읽을 수 있도록 한다.

🖥️ 디스크 기반 파일 시스템 (Disk-based File System)

HDD, SSD와 같은 저장 장치를 위한 파일 시스템이다.

  • 운영체제가 직접 관리
  • 특정 저장 장치에 의존

포맷(Format)

저장 장치에 파일 시스템을 설치하는 것을 의미한다.
→ 파일을 저장할 수 있는 상태로 만드는 과정

대표적인 파일 시스템 종류

파일 시스템설명사용 예시
NTFS Windows 기본 파일 시스템 Windows
FAT32 범용성 높지만 파일 크기 제한 존재 USB, SD 카드
exFAT FAT32 개선 버전, 파일 크기 제한 없음 외장하드, USB
ext4 Linux 기본 파일 시스템 Ubuntu, Debian
XFS 고성능 저널링 파일 시스템 서버, 데이터베이스

🛠️ 특징

✔ 빠른 접근 속도
✔ 파일 및 폴더를 저장 장치에 직접 저장
✔ 특정 운영체제와만 호환되는 경우 존재

🌐 네트워크 기반 파일 시스템 (Network File System)

원격 컴퓨터에 연결된 저장 장치를 네트워크를 통해
로컬 컴퓨터에서 사용하는 방식

대표적인 네트워크 파일 시스템

파일 시스템설명사용 예시
NFS Linux/Unix 환경에서 많이 사용 서버 간 파일 공유
SMB Windows 네트워크 공유 프로토콜 Windows 파일 공유
CIFS SMB 확장판 Windows ↔ Linux 공유
AFS 대규모 네트워크 파일 시스템 연구 기관, 기업

🛠️ 특징

✔ 여러 사용자가 동시에 파일 공유 가능
✔ 로컬 디스크 공간 절약
✔ 네트워크 필요

🗃️ 가상 파일 시스템 (Virtual File System, VFS)

실제 물리적인 파일이 존재하지 않는다.

운영체제가 내부 정보를 디렉터리/파일 형태로 구조화하여 노출하는 인터페이스이다.

 VFS의 역할

  • ext4, NTFS, NFS 등 다양한 파일 시스템을 하나의 인터페이스로 통합
  • 애플리케이션이 특정 파일 시스템을 몰라도 되게 함

 대표적인 VFS 종류

파일 시스템설명사용 예시
procfs /proc 디렉터리에 시스템 정보 제공 프로세스 정보
sysfs /sys 디렉터리에 커널 정보 제공 장치 정보
tmpfs RAM 기반 파일 저장 임시 파일
devfs /dev 디렉터리에 장치 파일 저장 USB, 디스크

🛠️ 특징

✔ 파일 시스템을 추상화
✔ 물리 저장소 없이 RAM 기반으로 동작 가능
✔ 운영체제 내부에서 사용하는 특수 파일 시스템 포함

2. 리눅스의 파일 계층 구조

리눅스는 모든 파일을 하나의 계층 구조로 관리한다.
→ 최상위에 루트 디렉터리(/) 하나만 존재한다.

3. 파일의 종류

  • 일반 파일 (텍스트, 동영상, 이미지 등)
  • 디렉터리
  • 심볼릭 링크 파일 (바로가기 개념)
  • 블록 디바이스 파일
  • 문자 디바이스 파일
  • 파이프 파일
  • 소켓 파일

4. 디렉터리 구조

1️⃣ 루트 디렉터리 (/)

파일 시스템의 최상단

/
├── bin/ # 기본 명령어 실행 파일
├── boot/ # 부팅 관련 파일
├── dev/ # 장치 파일
├── etc/ # 설정 파일
├── home/ # 사용자 홈 디렉터리
├── root/ # root 계정 홈 디렉터리
├── var/ # 로그, 캐시
└── ...

 

주요 디렉터리 설명

  • /bin → 기본 실행 명령어
  • /dev → 장치 파일
  • /etc → 시스템 설정 파일
  • /home → 사용자 홈 디렉터리
  • /lib → 시스템 라이브러리
  • /mnt → 임시 마운트
  • /proc → procfs 마운트
  • /root → root 사용자 홈
  • /sbin → 시스템 관리 명령어
  • /sys → sysfs 마운트
  • /tmp → 임시 파일
  • /usr → 시스템 소프트웨어

2️⃣ 현재 작업 디렉터리

Bash가 현재 실행 중인 디렉터리

3️⃣ 홈 디렉터리

사용자별로 할당되는 디렉터리

  • 일반 사용자 → /home/사용자명
  • root 사용자 → /root

cd / vs cd ~

  • cd / → 최상위 루트 디렉터리 이동
  • cd ~ → 현재 사용자 홈 디렉터리 이동

루트 디렉터리가 최상위인 이유

  • 모든 파일과 디렉터리는 / 아래에 존재하도록 설계됨
  • /home 역시 /의 하위 디렉터리

✅ 결론: 루트 디렉터리가 최상위, 홈 디렉터리는 그 아래 위치

4️⃣ 상대 경로와 절대 경로

경로(Path)
: 파일의 위치 정보를 표현하는 방식

📌 상대 경로
현재 작업 디렉터리 기준으로 표현

📌 절대 경로
루트 디렉터리(/) 기준으로 표현

'개발 공부 > Linux' 카테고리의 다른 글

[Linux] 소유권과 권한  (0) 2026.03.01
[Linux] 사용자와 사용자 그룹  (0) 2026.03.01
[Linux] 셸(2)  (0) 2026.03.01
[Linux] 셸(1)  (0) 2026.03.01
[Linux] 리눅스 소개  (0) 2026.03.01