본문 바로가기
개인 공부/Linux (CentOS 리눅스)

CentOS 리눅스 : 디렉터리와 파일 사용법 (2장)

by 희조당 2022. 4. 28.
728x90

■ 리눅스의 파일과 디렉터리

 - 파일의 종류

 1. 일반 파일 : 각종 텍스트 파일, 실행 파일, 이미지 파일 등 데이터를 저장하는 파일

 2. 디렉터리 : 디렉터리도 파일. 해당 디렉터리에 저장된 파일이나 하위 디렉터리에 대한 정보를 저장

 3. 심볼릭 링크 : 원본 파일을 대신하도록 다른 파일명으로 지정한 것. 윈도우의 바로가기 파일과 비슷함

 4. 장치 파일 : 시스템에 부착된 장치들을 관리하기 위한 특수 파일. 보통 /dev 디렉터리에 위치

 

 - 디렉터리의 계층 구조

 트리 구조를 사용해 디렉터리를 계층적으로 구성.

 루트 디렉터리(/) 밑에 서브 디렉터리들로 구성되어있다. 

 - 절대 경로명과 상대 경로명

 경로명이란? 디렉터리의 위치를 구분자 /로 표현하는 것. 두가지 표현법이 있다. 

 절대 경로명 : 항상 루트 디렉터리부터 시작 (항상 /로 시작, 특정 위치를 가리키는 절대 경로명은 항상 동일)

 상대 경로명 : 현재 디렉터리를 기준으로 시작 (/ 이외의 문자로 시작, 상대 경로명은 현재 디렉터리에 따라 다르다)

 

 - 파일과 디렉터리 이름의 규칙

 1. /, 공백, 몇몇 기호 사용불가

 2. 마침표(.)로 시작할 경우 숨김 파일로 간주

 3. 영문의 대소문자를 구분

■ 디렉터리 관련 명령

 - 현재 디렉터리 확인

 pwd : 현재 디렉터리의 위치 (절대 경로) 확인

 

 - 디렉터리 이동

 사용자의 접근을 막아둔 디렉터리를 제외하곤 모두 이동 가능

 cd [디렉터리] : 지정한 디렉터리로 이동

 

 - 디렉터리 내용 확인

 ls [옵션] [디렉터리(파일)] : 디렉터리의 내용을 출력한다.

  -a : 숨김 파일을 포함한 모든 파일 목록 출력

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

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

   -l : 파일의 상세 정보 출력

  -A : .(마침표)와 ..(마침표*2)를 제외한 모든 파일 목록 출력

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

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

  -R : 하위 디렉터리의 목록까지 출력

 

 - 디렉터리 생성

 mkdir [옵션] [디렉터리] : 디렉터리 생성. 디렉터리 명을 여러 개 입력할 수 있다.

  -p : 중간 디렉터리 경로를 자동 생성

 

 - 디렉터리 삭제

 rmdir [옵션] [디렉터리] : 디렉터리 삭제 

  -p : 지정한 디렉터리의 부모가 비었을 경우 부모도 자동 삭제

■ 파일 관련 명령

 - 파일 내용 출력

 cat [옵션] [파일] : 파일 내용을 출력

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

 

 more [옵션] [파일] : 파일 내용을 화면 단위로 출력

  + 행 번호 : 출력을 시작할 행 번호 지정

  space bar : 다음 화면 / Enter : 한 행씩 스크롤 / '/문자열' 입력 : 해당 문자열로 / q : 종료

 

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

  space bar : 다음 화면 / ctrl + b : 이전 화면 / j : 한 항씩 다음 행으로 / k : 한 행씩 이전 행으로

 

 tail [옵션] [파일] : 파일 뒷부분의 몇 행을 출력 (default 값 : 10행)

  + 행 번호 : 지정한 행부터 끝까지 출력

  -숫자 : 출력할 행의 수

  -f : 파일 출력을 종료하지 않고 주기적으로 출력 (ctrl + c 로 종료)

 

 - 파일 복사

 cp [옵션] [파일1(디렉터리)] [파일2(디렉터리)] : 파일이나 디렉터리 복사

  1. 두 인자 모두 파일 : 1을 2로 복사, 2가 없다면 새로 만든다.

  2. 두 번째가 디렉터리 : 파일을 해당 디렉터리 아래에 복사. 단, 디렉터리가 만들어져 있어야함

  3. 인자가 여러 개 : 마지막은 무조건 디렉터리. 앞서 지정한 파일이 모두 복사

  -i : 파일2가 이미 존재하면 덮어쓸 것인지 물어봄

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

 

 - 파일 이동과 파일명 변경

 mv [옵션] [파일1(디렉터리)] [파일2(디렉터리)] : 파일(디렉터리) 이동 or 이름 바꾸기

  1. 인자가 같은 타입 : 이름 바꾸기

  2. 두 번째가 디렉터리 : 이동하기

  3. 인자가 여러 개 : 마지막은 무조건 디렉터리. 앞서 지정한 파일이 모두 이동

  -i : 파일2가 이미 존재하면 덮어쓸 것인지 물어봄

 

 - 파일 삭제

 rm [옵션] [파일(디렉터리)] : 파일 삭제

  -i : 삭제 여부 재확인

  -r : 디렉터리 삭제할 때 지정

 

 - 파일 링크

 파일 링크란? 기존에 있는 파일에 새로운 이름을 붙이는 것. 하드 링크와 심볼릭 링크로 나뉨

 하드 링크 : 새로운 파일명 추가

 심볼릭 링크 : 새로운 파일로 가리키기 (파일 종류가 l로 표시, inode 번호가 다름, 파일명 뒤에 원본 파일명)

 파일 구성 : 파일명 + inode + 데이터 블록 (ls -l 명령 시 출력되는 것이 inode)

  따라서, 파일명은 다르지만 inode 번호가 같다면 같은 파일이다.

 ln [옵션] [원본 파일] [링크 파일] : 하드 링크 생성

  -s : 심볼릭 링크 파일 생성

 

 - 파일 관련 기타 유용한 명령

 touch [-acm] [-r ref_title | -t time] [파일] : 빈 파일 생성

  -a : 접근 시간만 변경

  -m : 수정 시간만 변경

  -t : 직접 시간 입력

 

 grep [옵션] [패턴] [파일] : 지정한 패턴이 포함된 행 찾기

  -i : 대소문자 모두 검색

  -l : 지정한 패턴이 포함된 파일명 출력

  -n : 행 번호 출력

 

 find [경로] [검색 조건] [동작] : 지정한 위치에 조건에 맞는 파일 찾기

 

 whereis [옵션] [파일] : 지정된 경로에서 명령의 바이너리 파일이나 매뉴얼 파일의 위치 찾기

 

 which [명령] : 명령 파일의 위치를 찾아서 경로나 앨리어스를 출력

댓글