컴퓨터공학부

[시스템 프로그래밍 Linux] 디렉터리와 파일 사용법

혜머니 2026. 3. 29. 20:05

1. 리눅스 파일과 디렉터리

 - 리눅스 = 시스템 관련 정보와 장치를 관리하기 위해 파일을 사용함

 (1) 리눅스 파일

  - 리눅스는 파일을 효과적으로 관리하기 위해 디렉터리를 사용함

  - 파일 : 관련있는 정보들의 집합

  - 디렉터리는 폴더처럼 계층구조를 가지고 있음

  - 리눅스는 전체 파일을 용도에 따라 계층적인 디렉터리로 구분하여 관리함

  - 일반 파일 : 데이터 저장, 텍스트/실행/이미지 등 리눅스에서 사용하는 대다수 파일

  - 디렉터리 : 해당 디렉터리에 저장된 파일이나 서브 디렉터리에 대한 정보가 저장됨

  - 심볼릭 링크 : 원본 파일을 대신하도록 원본 파일을 다른 파일명으로 지정한 것 (보통 @표시가 되어있음)

  - 장치 파일 : 리눅스 시스템에 부착된 장치들을 관리하기 위한 특수 파일

  - file 명령 : 파일 종류를 확인하는 명령

-- /home에 있는 .bash_pro와 다운로드 종류 알아보기
-- .어쩌고 써있는건 숨긴 파일임

file .bash_pro
ASCII text << text 파일이라는 뜻
file 다운로드
다운로드 : directory

 (2) 리눅스 디렉터리

  - 트리구조 : 파일을 효율적으로 관리하기 위해 디렉터리를 계층적으로 구성함

  - 하부 디렉터리로 나뉘고 각 디렉터리에 파일이 저장됨

  - 리눅스에서도 모든 디렉터리의 출발점을 루트(Root) 디렉터리라고 하며 '/'로 표시됨

  - 최상단에 root 디렉터리('/')가 있음

  - 디렉터리 아래에 있는 디렉터리를 서브 디렉터리 또는 하위 디렉토리라고 함

  - 서브 디렉터리 입장에서 보면 자신을 포함하고 있는 디렉터리를 상위 디렉터리 혹은 부모 디렉터리라고 함

  - 상위 디렉터리는 '..'로 표시하고 '.'는 현재 디렉터리를 말함

  - root 디렉터리는 유일하게 부모 디렉터리가 없는 디렉터리임

ls -F

  - 디렉터리 이름의 끝에 붙은 /는 해당 파일이 디렉터리임을, @은 심볼릭 링크임을 뜻함

  - lib, sbin, bin, lib64는 디렉터리가 아니라 심볼릭 링크임

  - dev : 장치 파일이 담긴 디렉터리

  - home : 사용자 홈 디렉터리

  - media : DVD나 CD, USB와 같은 외부 장치를 마운트(연결)하는 디렉터리

  - opt : 추가 패키지가 설치되는 디렉터리

  - root : root 계정의 홈 디렉터리, / 디렉터리와 다른 것

  - sys : 리눅스 커널과 관련된 파일이 있는 디렉터리

  - usr : Unix System Resource의 약자로 기본 실행 파일과 라이브러리, 헤더 파일 등 많은 파일을 가지고 있음

  - boot : 부팅에 필요한 커널 파일을 가진 디렉터리

  - etc : 리눅스 설정을 위한 각종 파일을 가진 디렉터리

  - lost+found : 보통은 비어있는 디렉터리, 파일 시스템에 문제가 발생되어 복구할 경우, 문제가 되는 파일이 저장되는 디렉터리

  - mnt : 파일 시스템을 임시로 마운트 하는 디렉터리

  - proc : 프로세스 정보 등 커널 관련 정보가 저장되는 디렉터리

  - run : 실행 중인 서비스와 관련된 파일이 저장됨

  - srv : FTP와 Web등 시스템에서 제공하는 서비스의 데이터가 저장됨

  - tmp : 시스템 사용 중에 발생하는 임시 데이터가 저장됨, 시스템을 재시작하면 이 디렉터리에 있는 파일은 모두 삭제됨

  - var : 시스템 운영 중에 발생하는 데이터나 로그 등 내용이 자주 바뀌는 파일이 주로 저장됨

  - 작업 디렉터리 : 현재 디렉터리 (pwd) 

  - 홈 디렉터리 : 각 사용자에게 할당된 디렉터리, 처음 사용자 계정을 만들 때 지정함, 사용자는 자신의 홈 디렉터리 아래 파일이나 서브 디렉터리를 생성하여 작업, 홈 디렉터리는 '~'로 표시됨, cd ~ 홈 디렉터리로 이동

  - 경로명 : 디렉터니는 계층 구조에 있는 특정 파일이나 디렉터리의 위치를 나타내는 것

  - 절대 경로 : /로 시작, 루트 디렉토리에서 원하는 디렉토리까지 모든 디렉토리명을 명시

  - 상대 경로 : /외의 문자로 시작, 현재 경로에서 찾아가는 것, 현재 경로가 root의 3~4번째 서브 디렉터리라도 하위 디렉터리가 원하는 경로라면 그 폴더명만 cd 하면됨

 (3) 디렉터리 이름과 규칙

  - 파일과 디렉터리 이름은 255자까지 가능

  - 파일과 디렉터리 이름의 영문은 대문자와 소문자를 구별하여 다른 글자로 취급함

  - 파일과 디렉터리 이름이 '.'로 시작하면 숨김 파일로 간주함

  - 파일과 디렉터리 이름으로 모든 ASCII 문자를 사용할 수 있음

  - 혼란을 줄 수 있으므로 '/'와 특수문자는 삼가기

2. 디렉터리 관리 명령

 (1) 디렉터리 확인과 이동

  - pwd : 현재 디렉터리 위치 확인, 현재 디렉터리의 절대 경로를 출력

  - cd : 지정한 디렉터리로 이동함 

   * 디렉터리에서 다른 디렉터리로 이동할 때는 cd 명령을 사용

   * cd 명령과 함께 이동하고자 하는 목적지를 지정하면 이동함

   * 이동할 디렉터리의 경로명으로 절대 경로명과 상대 경로명 둘 다 사용 가능

   * 상위 디렉터리 이동 시 cd .. 현재 경로 출력 cd .

cd /tmp
pwd 
   >> /tmp

cd ../usr/lib
pwd

   >> /usr/lib

cd ../../home/user1
pwd

   >> /home/user1

cd ~
pwd

  >> /home

  - ls 명령 : 디렉터리에 있는 파일이나 서브 디렉터리 등 디렉터리 내용을 보는 명령

   * 다양한 옵션 제공, 옵션 연결 시 -뒤에 나열

     -a : 숨긴 파일 포함 모두 출력, '.', '..'도 표현됨

     -l : 파일의 상세 정보 출력 (-일반, d디렉터리, l심볼릭링크, b블록장치, c문자장치, p파이프, s소켓), 숫자는 하드 링크 개수임

     -i : 첫번째 행에 inode 번호 출력

     -d : 디렉터리 자체의 정보를 출력

     -F : 파일의 종류 표시 (*:실행파일, /:디렉터리, @:심볼릭링크, 표시없음:일반파일)

     -A : '.'와 '..'를 제외한 모든 파일 목록을 출력

     -L : 심볼릭 링크 파일의 경우 원본 파일 정보 출력

     -R : 서브 디렉터리 목록까지 출력

     dir, vidr : 디렉터리의 내용을 보여줌 -l과 비슷

 (2) 디렉터리 생성과 삭제

  - 홈 디렉터리와 쓰기 권한이 있는 디렉터리에 사용자의 필요에 따라 디렉터리를 생성할 수 있음

  - mkdir : 디렉터리 생성

  - mkdir dir1 dir2 dir3 도 가능 

  - 옵션 -p : 서브 디렉터리를 계층적으로 생성할 때 중간 단계의 디렉터리가 없으면 자동으로 중간 단계 디렉터리를 생성한 뒤 지정한 디렉터리를 생성함

  - mkdir /temp/mid/dir1 << 에러 발생 '그런 파일이나 디렉터리가 없습니다'

    mkdir -p /temp/mid/dir1

  - rmdir : 디렉터리를 삭제함

  - 옵션 -p 지정한 디렉터리와 부모 디렉터리가 빈 경우 부모 디렉터리도 자동 삭제함

  - rmdir을 할 때는 해당 디렉터리가 비어있어야 함, 남아있을 경우 에러 출력

  - rmdir dir1 dir2 dir3 가능

3. 파일 관리 명령

 (1) 파일 내용 출력

 ⓐ cat : 파일 내용을 연속으로 출력

 - 옵션 -n : 행번호를 붙여서 출력

 ⓑ more : 파일 내용을 화면 단위로 출력

 - 파일 내용을 연속 출력 시 내용이 많으면 스크롤되어 내용 확인이 어려움

 - 화면 단위로 파일 내용을 출력해주는 more 명령어 사용

 - 옵션 +행번호 : 출력을 시작할 행 번호를 지정함

 ⓒ less : 파일 내용을 화면 단위로 출력

 - more 명령은 스크롤되어 지나간 명령을 다시 볼 수 없음

 - less 명령을 사용하면 파일 내용을 앞, 뒤로 스크롤하며 이동할 수 있음

 - 방향키 : j 아래, k 위, spacebar/CTRL+f 다음화면 이동,  spacebar/CTRL+k 이전화면 이동

 ⓓ tail : 파일 내용의 뒷 부분을 출력함

 - 기본값이 10

 - 옵션 : +행번호(지정한 행부터 끝까지)

            -f(출력을 종료하지 않고 주기적으로 출력)

            -숫자(화면에 출력할 행의 수 지정)

 (2) 파일 복사

 - cp : 파일이나 디렉터리를 복사함

 - 옵션 -i : 파일 2가 이미 존재하면 덮어쓸 것을 물어봄

           -r : 디렉터리를 복사할 때 지정

 - 두 인자가 모두 파일인 경우 : 원본 파일을 다른 파일로 복사함

   > 두번째 인자로 지정한 파일이 존재하지 않은다면, 원본 파일을 복사해서 새로 만듬

 - 두 번째 인자가 디렉터리인 경우 : 파일을 해당 디렉터리 아래에 복사함 

   > 파일을 복사하면서 파일명을 원본 파일과 다르게 지정하면 새로운 파일명으로 복사됨

 - 두번째 인자가 디렉터리인 경우 : 파일을 다른 디렉터리에 복사할 경우 해당 디렉터리에 복사 권한이 있어야 함

 - 인자를 여러개 지정할 경우 : cp 명령에서 첫번째 자리에 파일을 여러개 지정하고 마지막 인자를 디렉터리로 설정하면

                                             여러 파일이 해당 디렉터리에 한번에 여러개 복사됨