강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

새디렉토리 만들기와 디렉토리 삭제하기(mkdir, rmdir)

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

새디렉토리 만들기와 디렉토리 삭제하기(mkdir, rmdir)

 

 

 

 

 

새로운 디렉토리를 만들거나 기존의 디렉토리를 삭제하는 방법에 대하여 간단히 알아보자. 리눅스에서 새로운 디렉토리를 만들때에는 mkdir이라는 것을 사용하고 삭제할 때에는 rmdir이라는 것을 사용한다.

 

 

 

 물론, 방금 앞에서 디렉토리를 삭제는 주로 rm -rf라는 것을 사용한다고 배웠다.

 

 

 

 여기서는 mkdir rmdir을 함께 알아두도록 하자.

 

, mkdir“MaKe DIRectory”의 약어로서 새로운 디렉토리를 만들때 사용하는 리눅스 명령어이다.

 

 

 

 리눅스의 가장 흔한 명령어의 일종으로서 필요한 디렉토리가 있을때 간단히 "mkdir 디렉토리명"으로 새로운 디렉토리를 만들 수 있다.

 

 

 

 흔히 mkdir명령어를 단순히 디렉토리를 생성하는 용도로 가볍게 생각하기도 한다.

 

 

 

 하지만 필자는 mkdir명령어 사용시에 사용자의 umask값의 개념을 꼭 이해하라고 늘 말한다.

 

 

 

 , mkdir명령어로 디렉토리를 생성할 때에 umask값에 따라서 생성되는 디렉토리의 퍼미션이 달라지기 때문이다.

 

 

 

 그리고 새로운 디렉토리를 만들때에 mkdir로 원하는 퍼미션을 가진 새로운 디렉토리를 생성하려면 -m옵션을 사용해야하는 것도 함께 알아두어야 한다.

 

 

 

 

 

, 그럼 예를 보도록 하자. 새로운 디렉토리를 생성하고자 할 때에는 다음과 같이 "mkdir 디렉토리명"이라고만 하면된다.

 

 

 

 

 

[sspark@sulinux queen]$ls -l

합계 0

[sspark@sulinux queen]$

[sspark@sulinux queen]$mkdir linux

[sspark@sulinux queen]$

[sspark@sulinux queen]$ls -l

합계 4

drwxr-xr-x 2 sspark sspark 4096  3 19 05:23 linux

[sspark@sulinux queen]$

 

 

 

 

위의 예에서는 linux라는 이름을 가진 새로운 디렉토리를 생성하였다.

 

 

 

 

 

이번에는 mkdir을 이용하여 상위디렉토리경로를 포함한 새로운 디렉토리를 생성하는 예이다.

 

 

 

 다음 예를 보자.

 

[sspark@sulinux queen]$ls -l

합계 4

drwxr-xr-x 2 sspark sspark 4096  3 19 05:23 linux

[sspark@sulinux queen]$

[sspark@sulinux queen]$mkdir sulinux/newdir

mkdir: `sulinux/newdir' 디렉토리를 만들 수 없습니다: 그런 파일이나 디렉토리가 없음

[sspark@sulinux queen]$

 

 

 

토리내에 또다른 newdir이라는 디렉토리를 생성하고자 하였다.

 

 

 

 하지만, sulinux라는 디렉토리가 존재하지 않기 때문에 당연히 newdir이라는 디렉토리도 생성되지 않았다.

 

 

 

 

 

우리는 위의 예에서 sulinux디렉토리와 또 그 안에 newdir이라는 서브디렉토리까지 한꺼번에 생성하고자 한다.

 

 

 

 , 상위디렉토리 경로를 포함하는 디렉토리를 생성하고자 할 때에는 아래 예와 같이 -p옵션을 사용하면 된다.

 

 

 

 아래는 -p 옵션을 사용하여 상위디렉토리경로를 포함한 새로운 디렉토리를 생성하는 예이다.

 

 

 

 

 

[sspark@sulinux queen]$mkdir -p sulinux/newdir

[sspark@sulinux queen]$

[sspark@sulinux queen]$ls -l

합계 8

drwxr-xr-x 2 sspark sspark 4096  3 19 05:23 linux

drwxr-xr-x 3 sspark sspark 4096  3 19 05:26 sulinux

[sspark@sulinux queen]$

[sspark@sulinux queen]$ls -l sulinux

합계 4

drwxr-xr-x 2 sspark sspark 4096  3 19 05:26 newdir

[sspark@sulinux queen]$

 

 

 

위의 -p옵션을 사용한 결과 새로운 sulinux디렉토리와 newdir이라는 서브디렉토로까지 모두 새로 생성되었다.

 

 

 

 , -p옵션을 사용하면 상위디렉토리의 경로를 포함한 새로운 디렉토리를 생성할 수 있다.

 

 

 

 

 

이번에는 mkdir을 이용하여 특정 퍼미션을 가진 새로운 디렉토리를 생성하는 방법을 보도록 하자. 이미 앞에서 말했듯이 새로 생성되는 디렉토리의 퍼미션은 사용자의 umask값에 따라서 결정된다.

 

 

 

  앞의 예에서는 기본 umask값이 0022이므로 디렉토리의 퍼미션이 755가 되었음을 알 수 있다.

 

 

 

 하지만 사용자가 원하는 퍼미션으로 새로운 디렉토리를 생성하고자 한다면 어떻게 하면 될까?  그 해답은 -m옵션에 있다.

 

 

 

 , mkdir명령어로 새로운 디렉토리를 생성할 때에 원하는 퍼미션을 지정하려면 -m옵션을 사용하면 된다.

 

 

 

 다음 그 예를 보자.

 

[sspark@sulinux queen]$ls -l

합계 4

drwxr-xr-x 2 sspark sspark 4096  3 19 05:23 linux

[sspark@sulinux queen]$

[sspark@sulinux queen]$umask

0022

[sspark@sulinux queen]$

[sspark@sulinux queen]$mkdir -m 644 sulinux

[sspark@sulinux queen]$

[sspark@sulinux queen]$ls -l

합계 8

drwxr-xr-x 2 sspark sspark 4096  3 19 05:23 linux

drw-r--r-- 2 sspark sspark 4096  3 19 05:29 sulinux

[sspark@sulinux queen]$

 

 

 

 

먼저 umask를 실행하여 현재 umask값을 확인하였다.

 

 

 

 0022로 설정되어 있다.

 

 

 

 따라서 특별한 옵션없이 기본적으로 파일이나 디렉토리를 생성한다면 새로 생성되는 파일은 644퍼미션을 가지게 되고, 새로 생성되는 디렉토리는 755퍼미션을 가지게 될 것이다.

 

 

 

 하지만, 위에서 새로 생성되는 sulinux디렉토리의 퍼미션을 -m옵션에 의해 644로 지정해 주었다.

 

 

 

  결과를 보면 새로 생성된 sulinux디렉토리의 퍼미션이 644로 되어있다는 것을 알 수 있다.

 

 

 

 

 

 

다음은 디렉토리를 삭제하는 예이다.

 

 

 

 이미 앞에서 rm명령어로 디렉토리를 삭제하는 예를 보았다.

 

 

 

 , 실무에서는 비어있지 않은 디렉토리를 삭제하는 경우가 흔하므로 특정 디렉토리를 삭제할 때에 rmdir 명령어 대신 "rm -rf 디렉토리명"이란 명령어를 주로 사용한다.

 

 

 

 rmdir“ReMove DIRectory”의 약어로서 비어있는 디렉토리를 삭제하는 명령어이다.

 

 

 

  디렉토리를 삭제할 때에는 반드시 삭제하고자 하는 디렉토리가 비어있어야 한다.

 

 

 

 

 

다음 예를보면 2개의 디렉토리가 있다.

 

 

 

 첫번째 linux디렉토리는 아무런 파일이 존재하지 않는다.

 

 

 

 두번째 sulinux라는 디렉토리는 파일이 존재한다.

 

 

 

 

 

[sspark@sulinux queen]$ls -l

합계 8

drwxr-xr-x 2 sspark sspark 4096  3 19 05:23 linux

drwxr-xr-x 2 sspark sspark 4096  3 19 06:48 sulinux

[sspark@sulinux queen]$

[sspark@sulinux queen]$ls -l linux

합계 0

[sspark@sulinux queen]$

[sspark@sulinux queen]$ls -l sulinux/

합계 292

-rwxr-xr-x 1 sspark sspark 294136  3 19 06:48 xfsdump

[sspark@sulinux queen]$

 

 

 

 

이런 상황에서 linux라는 디렉토리를 rmdir로 삭제되지만 sulinux디렉토리는 삭제되지 않는다.

 

 

 

 sulinux디렉토리내에는 파일이 존재하고 있기 때문이다.

 

 

 

 

 

[sspark@sulinux queen]$rmdir linux/

[sspark@sulinux queen]$

[sspark@sulinux queen]$rmdir sulinux/

rmdir: sulinux/: 디렉토리가 비어있지 않음

[sspark@sulinux queen]$

 

 

 

 

만약 파일이 존재하는 디렉토리를 삭제하려고 한다면 이미 앞에서 배웠던 rm명령어를 다음과 같이 사용해야 한다.

 

 

 

 

 

[sspark@sulinux queen]$rm -rf sulinux/

[sspark@sulinux queen]$

[sspark@sulinux queen]$ls -l

합계 0

[sspark@sulinux queen]$

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,060 명
  • 현재 강좌수 :  35,947 개
  • 현재 접속자 :  245 명