Linux - 파일, 디렉토리 삭제 명령어(rm -rf, rmdir)

리눅스(우분투)의 터미널에서 파일이나 디렉토리를 삭제하는 명령어들을 소개합니다.

다음과 같은 경우에 따라서, 사용해야하는 명령어가 조금씩 다릅니다.

  • 파일 삭제 : rm [file path]
  • 빈 폴더(디렉토리) 삭제 : rmdir [dir path] 또는 rm -d [dir path]
  • 파일을 갖고 있는 폴더(디렉토리) 삭제 : rm -r [dir path]

물론, 이런 것을 구분하지 않고 그냥 삭제하고 싶다면 rm -rf [path] 명령어로 디렉토리나 파일을 삭제하시면 됩니다.

각각의 명령어를 소개하고 차이점 등을 살펴보겠습니다.

1. 파일 삭제 : rm [file path]

파일 1개나 여러개를 삭제할 때, 아래와 같이 rm 명령어에 파일 경로를 나열하면 됩니다. 입력된 모든 파일들이 삭제됩니다.

$ rm myFile.txt

$ rm myFile.txt myFile2.txt myFile3.txt

하지만 rm 명령어로 디렉토리를 삭제하려고 하면 아래와 같이 에러가 발생하면서 실패합니다.

$ rm ./myDir
rm: cannot remove 'myDir/': Is a directory

2. 빈 폴더(디렉토리) 삭제 : rmdir [dir path] 또는 rm -d [dir path]

빈 폴더는 rmdir [dir path] 또는 rm -d [dir path] 명령어로 삭제할 수 있습니다.

$ rmdir myDir

$ rm -d myDir

만약 디렉토리 안에 폴더나 파일이 있다면, 위의 명령어들은 아래와 같이 에러를 출력하며 디렉토리를 삭제하지 않습니다.

$ rmdir myDir/
rmdir: failed to remove 'myDir/': Directory not empty

3. 파일을 갖고 있는 폴더(디렉토리) 삭제 : rm -r [dir path]

파일을 갖고 있는 디렉토리를 지우고 싶을 때는 아래와 같이 rm -r 명령어로 삭제할 수 있습니다.

$ rm -r myDir/

-r 옵션은 아래와 같이 재귀적으로 하위에 있는 모든 파일 및 디렉토리를 삭제하라는 의미입니다.

$ rm --help
Usage: rm [OPTION]... [FILE]...
Remove (unlink) the FILE(s).

  -f, --force           ignore nonexistent files and arguments, never prompt
  -r, -R, --recursive   remove directories and their contents recursively
  -d, --dir             remove empty directories

간혹 rm -r 명령어로 디렉토리를 삭제할 때, 어떤 문제가 있으면 파일을 삭제하지 않고 경고하는데, f 옵션을 추가하여 rm -rf로 삭제하면 경고 없이 디렉토리나 파일을 삭제합니다.

rm -r [dir path] 명령어는 디렉토리에 파일이 있거나 없거나, 항상 디렉토리를 삭제합니다.

결론은, 삭제하려는 대상이 확실하고 경고를 무시하고 싶다면 rm -rf로 삭제하시면 됩니다. 그렇지 않은 경우 rm -r로 삭제하시면 됩니다. 실수로 시스템 디렉토리를 삭제하려는 경우, 경고가 발생하여 파일이 삭제되지 않을 수 있습니다.

Loading script...

Related Posts

codechachaCopyright ©2019 codechacha