[유닉스] 디렉토리 생성, 삭제


디렉토리 생성



홈 디렉토리

  • 새로운 디렉토리를 생성
  • 시스템은 자동으로 “.”과 “..” 엔트리를 만들며, 일반 사용자는 이 두 엔트리를 삭제할 수 없음
  • 형식 : mkdir [옵션] 디렉토리명
  • 옵션
  • -p : 하위 디렉토리를 계층적으로 생성할 때 중간의 디렉토리가 없으면, 생성하면서 전체 디렉토리를 생성


디렉토리 한 개 생성

  • mkdir 다음에 디렉토리 이름을 지정하면 현재 디렉토리 아래에 디렉토리 생성

  • 예) mkdir Unix
  • mkdir 다음에 디렉토리 이름을 절대 경로로 지정하면 절대 경로 상에 디렉토리 생성

  • 예) mkdir /home/ksshin/Unix/ch2
$ mkdir Unix
$ ls Unix
$ ls -a Unix
. ..
$ mkdir /home/ksshin/Unix/ch2
$ ls Unix
ch3
$


디렉토리 여러 개를 동시에 생성

  • mkdir 다음에 공백으로 구분되는 이름이 여러 개일 경우 각각을 디렉토리 이름으로 하여 여러 개의 디렉토리 생성
$ mkdir temp dir1
$ ls –l
total 9
drwxr-xr-x 2 ksshin ksshin 4096 30 May 21:12 temp
drwxr-xr-x 2 ksshin ksshin 4096 30 May 21:12 dir1
$
  • 홈디렉토리로 이동하지 않고 생성

  • 명령어 라인이 길어질 때는 줄 끝에 백슬래시() 문자 사용

$ mkdir /home/ksshin/Unix/ch1 \
/home/ksshin/Unix/ch2/document \
/home/ksshin/Unix/ch2/source
$


중간 디렉토리 자동 생성

  • mkdir 명령 다음에 –p 옵션 사용

  • 디렉토리 이름으로 지정한 경로 중 중간 단계의 디렉토리가 존재하지 않으면 중간 단계 디렉토리도 자동으로 생성한 뒤 해당 디렉토리 생성

$ mkdir –p temp/work/prog
$ ls –lR temp
temp:
total 1
drwxr-xr-x 2 ksshin ksshin 4096 30 May 21:12 work
temp/work:
total 1
drwxr-xr-x 2 ksshin ksshin 4096 30 May 21:12 prog
temp/work/prog:
total 0
$


서브디렉토리 생성 후의 구조


디렉토리 생성



rmdir(remove directory)

  • 디렉토리를 삭제
  • 형식 : rmdir [옵션] 디렉토리명
  • 옵션
  • -p : 지정한 디렉토리를 삭제한 뒤, 그 디렉토리의 부모 디렉토리가 빈 디렉토리일 경우 부모 디렉토리도 자동으로 삭제
  • 사용 예
  • rmdir temp


디렉토리 삭제할 때 규칙

  • 비어 있지 않은 디렉토리는 삭제할 수 없다.
  • 작업 디렉토리와 루트 디렉토리 사이에 있는 디렉토리는 어떤 것도 지울 수 없다.
  • 비어 있지 않은 디렉토리를 한 번에 지우려면 ‘rm –r’ 명령 사용
  • 디렉토리를 지울 때마다 사용자에게 질문하게 하려면 ‘rm –ir’ 명령 사용
  • 비어 있지 않은 디렉토리를 삭제하려고 하면 오류 메시지 출력
$ rmdir temp
rmdir: failed to remove ‘temp’ : Directory not empty
$


디렉토리 한 개 삭제

  • rmdir 다음에 디렉토리 이름 지정하면 현재 디렉토리 내에 있는 해당 디렉토리 삭제

  • 예) rmdir dir

  • rmdir 다음에 디렉토리 이름을 절대경로로 지정하면 절대 경로 상에 있는 해당 디렉토리 삭제

  • 예) rmdir /home/ksshin/test


디렉토리 여러 개 삭제

$ rmdir temp/work/prog test
$ cd ~/Unix/ch2
$ rmdir document source
$


가장 단순한 디렉토리 삭제 방법

  • 가장 낮은 곳에 있는 디렉토리 삭제
$ cd ~/Unix/ch2
$ rmdir document source
  • ch1, ch2 디렉토리 삭제
$ cd ..
$ rmdir ch1 ch2
  • 삭제 후 디렉토리 구조


가장 단순한 디렉토리 삭제 방법

  • 절대 경로명으로 디렉토리 삭제
$ rmdir /home/ksshin/Unix/ch2/document \
/home/ksshin/Unix/ch2/source \
/home/ksshin/Unix/ch1 \
/home/ksshin/Unix/ch2
$
  • “~” 기호를 사용하여 디렉토리 삭제
$ rmdir ~/Unix/ch2/document \
~/Unix/ch2/source \
~/Unix/ch1 \
~/Unix/ch2
$