2. 디렉토리와 파일

hhkim·2021년 3월 17일
0
post-thumbnail

🔗 유닉스 커맨드 라인


경로

1. 경로 확인과 변경

  • 위 그림 파란 줄: 사용자명
  • 위 그림 빨간 줄: 현재 디렉토리
  • ~(틸드, tilde): 현재 사용자의 홈 디렉토리
    • 홈 디렉토리의 이름은 보통 사용자 이름과 동일하다.
  • pwd
    • Print the name of Working Directory
    • 현재 작업중인 디렉토리를 출력한다.
  • 경로에서 맨 앞 /최상위 디렉토리 또는 루트 디렉토리라고 한다.
  • 다른 디렉토리를 포함하는 디렉토리를 부모 디렉토리(상위 디렉토리), 포함된 디렉토리를 자식 디렉토리(하위 디렉토리)라고 한다.
  • cd
    • Change Directory
    • 작업 디렉토리를 변경한다.

2. 절대 경로와 상대 경로

  • 절대 경로
    • 경로를 루트 디렉토리부터 나타내는 것
    • 예) /home/bono/Pictures
  • 상대 경로
    • 현재 위치를 기준으로 나타내는 것
    • .: 현재 디렉토리
    • ..: 현재 디렉토리의 상위 디렉토리
    • 예) 현재 위치가 /home/bono일 때, ./Pictures로 이동하면 /home/bono/Pictures와 같음
      • 현재 디렉토리 하위 디렉토리로 이동할 때는 그냥 디렉토리 명만 사용해도 된다. (위의 경우 cd Pictures)
    • 현재 디렉토리나 현재 디렉토리의 상위 디렉토리에서 작업할 때 절대 경로보다 편리하다.
    • 프로그램의 소스코드 내에서 경로를 지정할 때 상대 경로를 사용하면 다른 환경에서도 문제 없이 실행할 수 있다. (프로그램의 호환성)

3. 기타 경로 이동

  • cd /: 루트 디렉토리로 이동
  • cd ~: 홈 디렉토리로 이동
  • cd -: 이전 작업 디렉토리로 이동

디렉토리와 파일

1. ls

  • List

  • 현재 디렉토리에 있는 파일과 디렉토리 목록 출력

  • -l(long listing format) 옵션

    • 결과를 긴 리스트 형식으로 출력
    • 맨 앞이 -이면 파일, d면 디렉토리를 나타낸다.
  • -a(all) 옵션

    • 숨김 파일이나 디렉토리까지 모두 출력
    • 파일명이나 디렉토리명 앞에 .을 붙이면 숨겨진다. (설정 파일 등)
  • 인자 전달

    • 파일명을 인자로 전달하면 해당 파일에 관한 정보가 출력된다.
    • 디렉토리명을 인자로 전달하면 디렉토리 내부에 관한 정보가 출력된다.
    • 디렉토리 자체의 정보를 출력하고 싶다면 -d 옵션을 사용해야 한다.

2. mkdir

  • make directory
  • 디렉토리 생성
  • 아래와 같이 경로를 지정해서 생성할 수도 있다.

3. touch

  • 파일 생성

4. mv

  • move
  • 디렉토리나 파일 이동
    move [이동할 파일이나 디렉토리명] [이동할 경로]
    • 파일을 이동하려는 디렉토리 내부에 같은 이름의 파일이 있으면 덮어씌운다.
      • 이를 방지하려면 -i(interactive) 옵션을 사용하면 된다.
    • 디렉토리를 이동하려는 디렉토리 내부에 같은 이름의 파일이 있으면 오류가 발생한다.
  • 디렉토리나 파일명을 변경할 수도 있다.
    move [기존 파일이나 디렉토리명] [바꿀 이름]

5. cp

  • copy
  • 디렉토리나 폴더 복사
    cp [복사할 디렉토리나 파일명] [새로운 이름]
  • 이미 동일한 내용의 이름이 있으면 덮어씌워진다.
    • -i(interactive) 옵션을 사용하여 덮어씌워지는 경우 확인을 거칠 수 있다.
  • 디렉토리를 복사하려면 -r(recursive) 옵션을 사용해야 한다.

6. rm

  • remove
  • 디렉토리나 파일 삭제
  • 디렉토리를 삭제하려면 -r(recursive) 옵션을 사용해야 한다.
  • 삭제하기 전에 한 번 확인을 거치고 싶은 경우 -i 옵션을 사용한다.
    • 디렉토리를 삭제하는 경우 내부에 존재하는 파일별로 확인을 거친다.
    • 하나의 파일이라도 남아 있으면 디렉토리는 삭제되지 않는다.

7. concat, less

  • concat
    • concatenate
    • 파일의 내용을 이어서 출력
    • 인자를 하나 전달하면 해당 파일의 내용만, 여러 개 전달하면 각 파일의 내용이 이어서 출력된다.
  • less
    • 한 화면에 하나의 파일 내용을 출력
    • G: 파일의 끝으로 이동
    • g: 파일의 처음으로 이동
    • q: 나가기
    • 인자를 여러 개 전달하면 다음 페이지에 다음 파일의 내용을 출력한다.
    • :n(next): 다음 파일로 이동
    • :p(previous): 이전 파일로 이동

8. head, tail

  • 파일의 일부 내용만 출력
  • head
    • 파일의 맨 앞부분 10줄 출력
    • -n 옵션으로 출력할 줄의 수를 지정할 수 있다.
      head -n 20 aa: aa 파일의 처음 20줄 출력
      head -20 aa: n을 생략하고 써도 같은 결과
  • tail
    • 파일의 맨 뒷부분 10줄 출력
    • -n 옵션으로 출력할 줄의 수를 지정할 수 있다.
      tail -n 20 aa: aa 파일의 맨 뒤 20줄 출력
      tail -20 aa: n을 생략하고 써도 같은 결과

0개의 댓글