File Directory & Linking Files

2019. 12. 8. 11:48coding

Filenames


  • 알파벳 (대소문자 구분), 숫자, 하이픈, 밑줄, 점 사용 가능
  • 공백 및 다른 특수문자 사용 자제 (쓰는 경우 이름을 따옴표로 감싸거나 모든 특수문자 앞에 \를 추가
  • /는 사용 불가

Wild Cards


  • Token : that specifies that one or more different characters can be used to satisfy a specific request
    • ? : Any single character
      • c? → ca는 일치, cat 는 불일치
      • c?t → cat는 일치, cad는 불일치
      • c??t → caat는 일치, cat는 불일치
    • [...] : Any single character in the set
      • f[aoei]d → fad, fed 는 일치, fud 는 불일치
      • f[a-d]t → fat, fbt는 일치, fet는 불일치
      • f[A-z][0-9] → fA3, f^2는 일치, fa33은 불일치
      • : Zero or more characters
          • : 모든 파일
        • f*, *f : f로 시작하거나 끝나는 모든 파일
        • . : 파일 이름에 .을 가지는 모든 파일

Files in Unix


  • Regular, Directory, Character Special(단말기), Block Special(디스크), Symbolic Link, FIFO(파이프), Socket(네트워크)
  • Regular Files (Ordinary Files)
    • Text Files : ASCII code로 구성
    • Binary Files : data files and program files

A Directory Hierarchy


  • Directory files
    • A directory is a file that contains the names and locations of all files stored on a physical device
    • /(The Root) > bin, usr, dev ... > ..
  • Root directory (/)
    • The highest level in the hierarchy, not have a parent directory (belongs to a system administrator)
  • home directory (~ or ~userID)
  • working directory (. or $pwd)

Pathnames


  • Pathname
    • 디렉토리 계층구조 내의 위치를 규정하고 특정 파일이나 디렉토리를 구분
    • 경로명 내의 (/) → 객체명(파일이나 디렉토리) 들 간의 구분자
    • 처음 위치의 (/) → root directory를 의미
  • Absolute pathname (Full pathname)
    • Specifies a file or directory in relation to the entire file hierarchy
    • Starts the root directory (/) and lists each directory along the path to the final destination
    • Uses a slash(/) separates multiple directory or file names
  • Relative pathname
    • Describes the location of a file or directory in relation to the current directory
    • Do not begin with a slash
    • Uses slashes within the pathname as delimiters between object names

Detour : A disk file format


  • In unix, a file system has four structural sections known as blocks (Boot block, super block, inode block, Data blocks)
  • Boot block : boot program → used to load kernel into memory
  • Super Block : contains information about file system, total size of disk, free blocks, location of bad blocks
  • Inode block : Information node block → information about each file in the data block (file owner, file type, permission, address)
  • Data block

Directory Representation / link


 


Linking files


  • Hard Link

     

    • 디렉토리 내의 inode는 파일 이름을 물리적인 장치에 직접 연결, 다중 파일 링크 허용
    • 하나의 파일에 대한 다중 링크 → unix 에서 물리적인 파일은 단지 하나의 inode만 가질 수 있지만, 여러개의 이름을 가질 수 있다.
    • 하드링크는 파일에 대해서만 사용될 수 있으나, 소프트링크는 파일 외에 디렉토리에도 사용될 수 있다.
    • Advantages
      • Allow access to original file name via the file name or the inode number
      • The original file continues to exist as long as at least one directory contains its inode
      • Checks for the existence of the original file
    • Disadvantages
      • Cannot link to a file in a different file system
      • Prevents owner from truly deleting it, and it counts against his/her disk quota

     

  • Symbolic Link

    • Links to Different File systems

     

    • Advantages
      • Allow access to original file name
      • Can use either relative or absolute path to access the original file
      • Can cross partition and drives
      • Allows the creation of a link to a directory
    • Disadvantages
      • Created without checking the existence of the shared file
      • Cannot access the shared file if its path has restricted permissions
      • Can be circular linked to another symbolic linked file