Notice
Recent Posts
Link
«   2026/06   »
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
Archives
Today
Total
관리 메뉴

One Step Two Step

[Linux] 폴더와 같은 리눅스의 디렉터리 그리고 파일 본문

복습/Linux

[Linux] 폴더와 같은 리눅스의 디렉터리 그리고 파일

DEVILOW 2026. 3. 8. 23:28
반응형
  • 파일
    • 데이터를 읽을 수 있는 자원 혹은 데이터를 쓸 수 있는 모든 대상  →  넓은 의미로 디렉터리도 파일로 볼 수 있음
    • 디스크 파일 같이 저장된 것만 가리키는 것이 아니라 모든 물리적인 구동장치를 가리킴
    • 특히, 키보드(입력 자원, stdin)도 파일이고, 모니터(출력 대상, stdout)도 파일이고, 각 프린터(출력 대상) 역시 파일
  • 파일의 종류
    • 일반 파일 (Ordinary File): 데이터를 가지고 있으면서 디스크에 저장됨
    • 디렉터리 파일 (Directory File): 디스크에 저장되어 있으면서 다른 파일을 조직하고 액세스 하는데 필요한 정보 가짐
    • 특수 파일 (Special) or 디바이스 파일 (Device): 물리적인 장치에 대한 내부적인 표현  ☞  /dev/rsd0
  • 문서 파일 vs 이진 파일
    • 문서 파일
      • ASCII 문자(키보드에서 입력할 때 생성되는 데이터)만을 가지고 있는 일반 파일
      • 문서 파일은 문서, 프로그램, 쉘 스크립트 등을 작성하는데 사용됨
    • 이진 파일
      • 문자가 아닌 데이터가 들어 있는 일반 파일
      • 이진 파일은 일반적으로 프로그램에 의해서 처리될 때만 의미가 있는 데이 터를 포함 (실행 파일 자체도 이진 파일에 해당함)

  • 디렉터리
    • 파일을 계층적으로 구조화하는 단위 (폴더 개념과 동일)
    • 부모 디렉터리 - 다른 디렉터리를 가지고 있는 디렉터리
    • 서브 디렉터리 - 다른 디렉터리 안에 있는 디렉터리
  • 리눅스 디렉터리 체계
  • 디렉터리로 이동
    • 작업 디렉터리 바꾸기 cd(change directory) 사용  ☞  $ cd [directory]  // directory: 이동하고자 하는 디렉터리 이름
    • 디렉터리 이름 없이 cd 사용시 자신의 Home 디렉터리로 이동
    • 현재의 작업 디렉터리 확인 pwd(print working directory) 사용  ☞  $ pwd
  • 디렉터리 생성, 삭제
    • 디렉터리 생성 (mkdir)  ☞  $ mkdir directory
    • 디렉터리 삭제 (rmkdir)  ☞  $ rmdir directory   // 삭제할 디렉터리 내용이 empty이어야 함
    • 디렉토리 이름으로는 문자, 숫자, 특수 문자 등의 조합을 사용함
    • 디렉토리 이름은 절대 및 상대 경로명을 사용하여 지정할 수 있음
      • $ mkdir ../../course/linux // “..”: parent directory
      • $ cd ~/linux/course // “~”: home directory
      • $ rmdir ./course/linux // “.”: current directory
  • 디렉터리 / 파일 이동
    • 디렉터리 이동 명령어 (mv)  ☞  $ mv directory target-directory
    • 파일 이동 명령어 (mv)  ☞  $ mv file target-directory
    • mv의 목적
      • 디렉터리 / 파일 이름 다시 짓기
      • 디렉터리 / 파일 옮기기
      • 서브 디렉터리 전체 옮기기
  • 디렉터리 확인
    • 디렉터리 내용 확인 (ls)  ☞  $ ls [-adglrsCFR] [directories or files]
    • “ls”의 기본 기능은 디렉토리에 있는 파일 이름을 알파벳 순서대로 보여 주는 것
      • $ ls
      • $ ls –l    // 파일 정보 자세히 보기 (long option)
      • $ ls –F   // 실행 파일, symbolic link 확인
      • $ ls –a   // 숨겨진 파일 보기(“.”로 시작)
      • $ ls -laF
      • $ ls –t    // 최종 갱신 시간 순으로 보기
  • Alias
    • 기존 명령어 또는 복잡한 명령 조합에 대해 짧은 대체 이름을 부여하는 셸 내장 기능
      • $ alias ll 'ls –l'   // ls -l로 사용하던걸 ll로 사용 가능
      • $ alias la 'ls –a'
      • $ alias cdprj 'cd ~/course/linux/project'
    • Shell에 따라서 중간에 "="을 넣어야 할 수 있음
      • $ alias ll='ls –l'
    • 현재 alias 지정된 내용 보기  ☞  $ alias
    • 일반적으로 자주 쓰이는 명령은 alias로 지정하여 .cshrc (or. bashrc) 파 일에 저장함
  • 파일 내용 확인
    • cat: 파일 내용을 화면에 출력 (여러 파일 이름을 인수로 가질 수 있으며 , 작은 파일의 내용을 보기에 적당함)
    • more: 화면 크기 단위로 파일 내용 보기 (큰 파일의 내용을 보기에 적당 하며, 중간에 중단하고 싶은 경우 ‘q’를 입력함)
    • head: 파일의 머리(head) 부분의 내용을 출력함 (“-n” 옵션을 사용하여 출력을 원하는 라인 수를 지정할 수 있음)
    • tail: 파일의 끝부분(tail) 부분의 내용을 출력함 (“-n” 옵션을 사용하여 출력을 원하는 라인 수를 지정할 수 있음)
    • file: 파일의 유형(텍스트 파일, 그림 파일, 실행 파일 등)을 확인함
  • 복사
    • 파일을 다른 파일로 복사
      • $ cp file1 file2   // file1을 file2에 복사
      • $ cp –i file1 file2   // interactive option  (파일을 overwrite 하는 것(file1이 file2에 overwrite 되는 것)을 확인하기 위함)
    • 파일을 다른 디렉터리로 복사
      • $ cp [-i] files directory   // 파일들(files)을 directory에 복사
    • 디렉터리를 다른 디렉터리로 복사
      • $ cp -r dir1 dir2   // (directory1의 모든 내용(서브 디렉토리 포함)을 directory2로 복사), (“-r” option은 recursive를 의미함)
  • 파일 삭제
    • $ rm files   // 파일들(files)을 삭제
    • $ rm –i files   // interactive option (삭제 여부를 확인함)
    • $ rm –f files   // force option (파일 모드에 관계없이(“w” mode가 set 되어 있지 않은 경우에도) 삭제함)
  • 디렉터리 내용 모두 삭제
    • $ rm -r directory   // (주어진 디렉토리의 내용(서브 디렉터리 포함)을 모두 삭제함)
    • $ rm –rf directory   // (디렉토리 내의 서브 디렉터리 및 파일의 모드에 관계없이 모두 삭제함)

  • 파일의 권한 관리
    • 리눅스/유닉스의 세 가지 조합의 사용 권한
      • 사용자 개인을 위한 것 (owner)
      • 사용자가 속한 그룹을 위한 것 (group)
      • 시스템에 있는 모든 사람을 위한 것 (others)
    • 각 파일과 디렉토리에 대해, 사용자 자신을 위해, 사용자가 속한 그룹을 위해 그리고 모든 사람을 위해 각각 분리된 읽기(r), 쓰기(w), 실행(x)의 권한을 부여할 수 있다는 의미
    • " rwx rwx r-x " 경우 owner, group은 모든 권한이 있고, others는 r, x만 가능(쓰기 x)
  • 파일 모드 (file mode)
    • rwx의 사용 권한을 표현하기 위하여 세 자리 8진수 숫 자 코드를 사용
      • 첫 번째 8진수는 사용자(owner)의 권한을,
      • 두 번째 8진수는 그룹(group)의 권한을,
      • 세 번째 8진수는 모든 사용자(others)의 권한을 나타냄
    • 예제 
      • 755 → 111 101 101 → rwx r-x r-x
      • 644 → 110 100 100 → rw- r-- r--
      • 400 → 100 000 000 → r-- --- --- 
    • 파일 권한(모드) 변경
      • 파일에 대한 권한(모드)를 변경 chmod(change mode)  ☞  $ chmod mode files_or_directories
        • mode = three octal digits (예: 755, 644, 400)
        • mode = [u|g|o]+[+|-][r|w|x]+ (예: u+x, g-x, o+r)
      • 일반 사용자는 자신의 파일/디렉토리에 대한 권한 변경이 가능
      • 루트 유저(root)는 모든 파일/디렉토리에 대한 권한 변경이 가능

  • 파일 비교
    • cmp  ☞  $ cmp file1 file2   
      • 두 파일의 차이 여부를 판단, 차이가 있다면 파일 내 어디서 처음 달라지는지를 출력
    • diff  ☞  $ diff file1 file2
      • 두 파일을 줄 단위로 비교하여 그 차이를 출력함 (어느 줄, 어디서 달라지는지를 자세하게 출력하므로, 소스 비교 등을 할 때 활용)
  • 메타 문자
    • *(asterisk)
      • 모든 문자열와 대응
      • *는 0개 이상의 문자열에 일치시키며, 이는 모든 파일명을 대표하는 메타문 자로 사용됨
    • ?(question mark)
      • 하나의 문자와 대응
    • […](brackets)
      • 괄호 안 문자 중 한 문자와 대응되며, 괄호 안에 문자의 범위를 표현하기 위하여 “–”와 함께 사용할 수 있음

 

 

 

반응형