Keep going

파일과 디렉토리 본문

School/리눅스 시스템

파일과 디렉토리

코딩천재홍 2021. 4. 7. 01:42

디렉토리 구조 - 계층적 구조

일반적으로 사용하는 정보시스템에서도 사용

계층적 구조인 디렉토리 구조에서 정보를 찾아가기 위한 빨간색 선을 경로라고 한다.

 

 

파일 

  • 바이트의 집합
  • 바이너리 8개 → 바이트 - 문자, 정보 표현 (여러개)→ 파일
  • 대소문자 구별 
  • ' - ' , ' _ ' , ' . ' 문자 허용
  • 리눅스 시스템에서 ls command를 이용해 존재하는 파일 확인 가능 

 

ls command

  • -a : 숨김 파일까지 ( 파일이 .으로 시작하는)
  • -l : 좀 더 자세한 정보
  • -i : 시스템 내부에서 사용하는 인덱스 넘버 확인
  • -F : 파일 타입 나타냄 
    • * : execution, /:D a: symbolic link
  • -R : 하위까지 출력

 

 

cat command

  • 키보드를 입력하면 입력한 것이 바로 출력
  • '>' (redirection 기호) 입력하면 파일이 없을 경우 파일 생성하고 입력하는데로 모두 파일에 추가
  • ctrl + D를 눌러 끝을 표시
  • cat 파일명 을 입력하면 파일 내용 출력

 

touch command

  • 지정된 파일 이름으로 빈 파일을 작성한다.

 

more command

  • 화면 단위로 화면 출력, 텍스트 파일을 읽는데 있어 한페이지씩 차례로 확인
  • 명령키 
    • enter : 다음 라인 출력
    • space : 다음 페이지 출력
    • q : more 명령어 종료

 

less command

  • more 명령의 변형. less 명령어는 방향키도 사용이 가능하고 파일의 특정 위치에 표식을 해두고 나중에 다시 그곳으로 이동시켜 주는 기능도 있다.
  • 명령키
    • j : 다음 라인
    • k : 이전 라인
    • space or ctrl +f : 다음 페이지 출력
    • ctrl + b : 이전 페이지 
    • G : 텍스트 파일의 맨 마지막으로 이동
    • 1G, g : 텍스트 파일의 맨 처음으로 이동

 

head and tail

  • head는 파일 첫번째부터 체크
  • tail은 파일 마지막부터 체크
  • tail -4 : 끝에서 4번 까지
  • -n 언급이 없으면 10줄 프린트
  • -f : 내용이 변경될 때마다 실시간으로 출력 (로그파일 모니터링 등에 활용), tail 만 활용

 

rm command

  • 파일이나 디렉토리 삭제
  • 명령어
    • -i : 지울때마다 사용자에게 질문을 함
    • -f : 강제로 지우기
    • -r : 하위파일이나 디렉토리도 모두 삭제 (이 옵션 없이는 삭제 불가)

 

cp command

  • 현재 파일을 새로운 파일로 복사
    • cp abc.txt def.txt
      • abc.txt 파일을 def.txt로 이름을 바꾸어 복사함 (둘다 존재)
    • cp abc.txt xyz
      • xyz가 directory라면 xyz안에 abc.txt 파일 복사
      • xyz directory 아니라면 abc.txt를 xyz 파일로 복사 (둘다 존재)
    • cp abc.txt xyz/def.txt
      • abc.txt 파일을 xyz directory안에 def.txt.라는 이름으로 복사
    • cp -r abc xyz
      • abc 가 directory이면 xyz안에 abc 디렉토리 전부 복사 → xyz/abc
      • xyz 가 directory가 아니라면 abc를 xyz로 이름을 바꾸어 복사 (둘다 존재)
    • cp -r abc xyz/zzz :
      • xyz/zzz가 directory라면 xyz/zzz/abc 로 복사
      • xyz/zzz가 directory 아니라면 xyz안에 zzz라는 이름을 바꾸어 복사

 

mv command

  • 파일을 새로운 파일로 이동
    • mv abc.txt def.txt
      • abc 파일이 없어지고 내용 그대로 이면서 이름이 def.txt로 바뀜
    • mv abc.txt xyz
      • xyz가 directory가 아니라면 abc.txt이름이 xyz로 바뀌고 abc.txt 사라짐
      • xyz가 directory 라면 xyz directory안에 abc.txt 들어감
    • mv abc.txt xyz/def.txt
      • abc.txt 파일 사라지고, def.txt로 들어감
    • mv abc xyz
      • xyz가 directory라면 zbc가 사라지고 xyz/abc가 됨
      • xyz가 존재하지 않으면 abc가 xyz로 이름을 바꿈
    • mv abc xyz/zzz
      • xyz/zzz가 directory라면 xyz/zzz/abc가 됨
      • xyz/zzz가 directory가 아니라면 abc가 zzz로 이름 바꿔서 이동함

 

* 와일드카드 사용

파일 이름에 공백이나 셀로 해석되는 문자(예 : *)가 포함된 경우 작은 따옴표를 붙인다.

ex) cat '* important notes.txt *'

 

 

 

디렉 토리

  • 디렉 토리는 파일과 다른 디렉토리들의 집합체
  • 계층 구조의 가장 높은 레벨은 root directory라고 한다. " / " 로 표현

 

mkdir command

  • 빈 디렉토리를 생성한다.
  • 명령어
    • -p : 하위 디렉토리를 바로 생성한다. ex) mkdir -p a/b/c → a a/b a/b/c 생성

 

rmdir command

  • 빈 디렉토리를 삭제한다.
  •  명령어
    • --ignore-fail-on-non-empty : 디렉토리가 비어있지 않을 때에는 삭제할 수 없으며 에러 메세지가 표시된다. 이 옵션을 사용해도 디렉토리를 삭제할 수 없다는 사실은 변함없으며 단지 에러 메세지만 표시되지 않을 뿐이다.
    • -p : 상위 디렉토리까지 삭제 ex) rmdir -p a/b/c → a/b/c a/b a 삭제

 

 

current working directory - 일반적으로 사용자들의 명령어를 입력할 때 기준이 되는점, 이 기준 통해 디렉토리 위치 정하고 파일 경로 수행

 

 

pwd command (print working directory)

  • 현재 어느 디렉토리에 있는지 확인

 

cd command

  • 디렉토리 위치 변경할 때 명령어
  • cd 자체만 쓰면 home directory(~)로 가게된다.
  • cd .. : 상위 폴더
  • cd . : 현재 폴더

 

path

  • 파일과 디렉토리가 가리켜질 수 있는 방식
  • Absolute Path (절대 경로)
    • 절대 경로는 디렉토리 계층의 루트(/)에서부터 시작
  • Relative Path (상대 경로)
    • 루트부터 시작하지 않는다.
    • 현재 디렉토리를 항상 기준으로, 경로 이름 정한다.

 

paths to home directory

  • ~ : 홈 디렉토리 (사용자의 working directory)
  • cd ~계정이름 : 해당하는 계정의 홈 디렉토리로 이동
  • cd ~/test 
    • 절대 경로이다.
    • 어떤 디렉토리 내에서나 이 명령을 넣어도 항상 똑같은 곳으로 이동하기 때문

 

locate command

  • 다양한 패턴의 파일들을 찾고자 할 때 매우 유용하게 사용되는 명령어
  • updatedb 명령어를 반드시 해줘야 함 (최신 db 유지하기 위해)

 

which command

  • 특정 명령어의 위치를 찾아주는 명령어 ex) which cat

 

whereis command

  • 특정 명령어의 실행파일위치, 소스 위치, man 페이지 파일의 위치를 찾아주는 명령어
  • 명령어
    • -b : binary files
    • -m : manual files
    • -s : source files

 

find command

  • 원하는 조건의 파일, 디렉토리를 검색할 수 있다.
  • find 명령만 입력하면 현재 디렉토리에 있는 파일을 찾는다. (하위 디렉토리, 숨겨진 파일도 표시)
  • 명령어
    • -name filename : 찾을 파일 이름 지정
    • -type filetype : 파일 타입으로 찾기  ex) find -type d (디렉토리만 찾기)
    • -user useID : 지정한 사용자의 파일이나 디렉토리 찾기
  • operation
    • -print : 파일의 절대 경로 출력
    • -ls : 파일의 세부사항 출력

 

 

Linux Directories

 


 

Compressing

  • 파일, 디렉토리 압축
  • 파일, 디렉토리 압축하고 압축푸는 tools
    • gzip (gunzip)
    • bzip2 (bunzip2)
    • zip (unzip)
    • tar

 

gzip and gunzip

  • gzip [옵션] [압축파일명] - 압축할 때
    • gzip -pv test_zip.txt : 압축하기
    • gzip -d test_zip.txt.gz : 압축 해제
  • 옵션
    • -n : n은 1~9까지 숫자, 1이 가장 빠르지만 압축률은 가장 낮음
    • -c : 압축 결과를 출력. 원본파일은 그대로 놔둠
    • -d : 압축 해제
    • -f : 강제 압축
    • -l : 압축 파일의 정보 출력
    • -r : 디렉토리를 지정시 디렉토리에 포함된 모든 파일 압축
    • -t : 압축 파일 테스트
    • -v : 압축 혹은 해제나 압축시 자세한 정보 출력. 진행 과정을 이름 및 퍼센트와 함께
    • -h : 도움말 출력
    • -V : 버전 정보 출력
  • gunzip [옵션] [압축파일명] - 압축해제 할 때
    • gunzip -v test_gunzip.txt.gz : 압축풀기
  • 옵션
    • -l : 압축 파일 정보 출력
    • -r : 디렉토리를 지정 시 디렉토리 내의 모든 파일의 압축 해제
    • -t : 압축 파일 테스트
    • -v : 압축 해제나 압축 시 자세한 정보 출력
    • -h : 도움말 출력
    • -V :버전 정보 출력

 

bzip2 and bunzip2

  • gzip, zip 보다 압축률이 좋지만 약간 느림
  • bzip2 [옵션] [파일명] : 압축할 때
    • bzip2 test.txt : 압축하기
  • bunzip2 [옵션] [파일명] : 압축풀 때
    • bunzip2 test.txt.bz2
  • 옵션
    • -d : 압축을 풀 때 사용하는 옵션
    • -n : n은 1~9까지 숫자, 1이 가장 빠르지만 압축률은 가장 낮음
    • -c : 결과를 표준 출력으로 보낼 때 사용. tar와 병행해서 작업할 때 사용
    • -t : 압축 파일을 검사
  • bzip2, bunzip2 명령어도 압축, 압축 효율지정, 압축 결과를 표준 출력으로 보낼때의 방법이 gzip, gunzip과 똑같다. 단 생성되는 확장자만 다를 뿐이다.

 

zip and unzip

  • 리눅스에서 백업 등의 목적으로 여러 file/directory를 묶고 압축까지 하는 명령어
  • zip [생성할 압축 파일명] [파일명] : zip 확장자, 압축파일이 생겨도 원본이 유지됨
    • zip test.zip grub4.cfg
  • 옵션
    • -r : 디렉터리까지 압축
    • -n : n은 1~9까지 숫자, 1이 가장 빠르지만 압축률은 가장 낮음
    • -x : 압축시 파일 제외
    • -e : zip 파일에 암호 설정
  • unzip [.zip 파일명] : 압축해제, unzip은 zip 파일을 풀어줘도 zip 파일 원본은 그대로 같이 있다.
    • unzip compressed.zip
  • 옵션
    • -d : 지정한 디렉터리에 압축 해제
    • -l : 압축 파일 내 목록  보기

- zip을 제외한 위의 압축 명령어들은 단일압축만 되는 것이 기본적이다.

 

 

tar command

  • 파일들을 하나로 묶기만 하는 용도로 사용된다.
  • tar 파일을 생성한 이후 실제로 압축하면 tar.gz와 같은 확장자가 된다.
  • 압축을 하는 방식에 따라 gz나 bz 등의 확장자가 추가로 붙는다.
  • tar -cvf [압축파일명] [압축할 파일 혹은 폴더 경로] : tar파일 압축
    • tar -cvf data.tar data/
  • tar -xvf [압축파일명] : tar 파일 해제
    • tar-xvf data.tar
  • Listing
    • tar -tf [압축파일명] : 파일 내용 확인
  • 옵션
    • -z : gzip 으로 압축
    • -j : bzip2 로 압축
    • -c : tar로 묶기
    • -x : tar를 풀기
    • -f : 파일을 묶도록 지정 (반드시 추가되어야 함)
    • -v : 각 파일 압축 메시지 출력
    • -p : 파일의 권한 저장
  • gzip 파일로 압축 하고 해제하기
    • tar -zcvf [.tgz-file] [files]
    • tar -zxvf [.tgz-file]
  • bzip2 파일로 압축 하고 해제하기
    • tar -jcvf [.tbz2-file] [files]
    • tar -jxvf [.tbz2-file]
  • tar 파일이 압축파일이라고는 하지만 용량을 압축하지느 않습니다. 파일을 하나로 합쳐지는 방식이라고 생각하면 편하다.
  • tar.gz 방식 은 용량을 압축하고 tar를 다시 압축한다는 의미다.

'School > 리눅스 시스템' 카테고리의 다른 글

매뉴얼, 패키지, 로그  (0) 2021.05.03
텍스트 에디터  (0) 2021.05.02
접근 권한  (0) 2021.04.09
사용자/그룹 추가  (0) 2021.04.06
리눅스 기본 명령어  (0) 2021.04.05
Comments