본문 바로가기

리눅스-기초명령어/파일 시스템 관리

rm

파일이나 디렉토리를 삭제하는 명령어

 

사용법

rm [옵션] [파일/디렉토리]

 

옵션

옵션 설명
-r 디렉토리와 하위 파일들을 삭제한다.
-f 확인과정 없이 파일을 강제로 삭제한다.
-d 디렉토리가 비어있을 때만 삭제한다.
-i 삭제할때 삭제 여부를 확인한다. alias에 등록된 rm의 기본값.
-v 삭제되는 파일의 정보를 출력한다.

 

예시

  • 기본 : 파일 하나를 삭제하거나 여러 파일을 동시에 삭제 가능하다.
[root@Linux ~]# ls
Bye  dumpA  dumpB  dumpB~  Hi  tempA  tempA-
[root@Linux ~]# rm Bye
rm: remove regular empty file 'Bye'? y
[root@Linux ~]# ls
dumpA  dumpB  dumpB~  Hi  tempA  tempA-
[root@Linux ~]# rm dumpA dumpB
rm: remove regular empty file 'dumpA'? y
rm: remove regular empty file 'dumpB'? y
[root@Linux ~]# ls
dumpB~  Hi  tempA  tempA-

 

  • -r : 디렉토리 삭제 
[root@Linux ~]# mkdir -p up/down
# 실습을 위해 상위up 하위down 생성
[root@Linux ~]# rm up
rm: cannot remove 'up': Is a directory

# 기본 rm 명령어로는 디렉토리 삭제 불가
[root@Linux ~]# rm -r up
rm: descend into directory 'up'? y
rm: remove directory 'up/down'? y

rm: remove directory 'up'? y
[root@Linux ~]# ls
dumpB~  Hi  tempA  tempA-

 

  • -f : 강제로 파일을 지운다. 
[root@Linux ~]# ls
dumpB~  Hi  tempA  tempA-
[root@Linux ~]# rm -f dumpB~

[root@Linux ~]# ls
Hi  tempA  tempA-

 

  • -d : 비어있는 디렉토리만 제거
[root@Linux ~]# mkdir -p test/test2 
# 하위 폴더 test2를 가진 test디렉토리를 생성
[root@Linux ~]# rm -d test
rm: cannot remove 'test': Directory not empty
# 디렉토리가 비어있지 않아서 에러가 발생
[root@Linux test]# rm -rf test/* 

# test 내부의 파일을 삭제
[root@Linux ~]# rm -d test
rm: remove directory 'test'? y
# 디렉토리가 비어있어 삭제가 되었다.

 

  • -v : 삭제되는 대상의 정보를 출력한다
[root@Linux ~]# mkdir -p test/test2
# 하위 폴더 test2를 가진 test디렉토리를 생성
[root@Linux ~]# rm -rv test
rm: descend into directory 'test'? y
rm: remove directory 'test/test2'? y
removed directory 'test/test2'
rm: remove directory 'test'? y
removed directory 'test'

# 파일이 삭제될때마다 삭제되는 파일 이름이 출력

 

  • -rf : 확인 없이 바로 삭제(가장많이 사용)
[root@Linux ~]# mkdir -p test/test2 
# 하위 폴더 test2를 가진 test디렉토리를 생성
[root@Linux ~]# ls
test
[root@Linux ~]# rm -rf test
[root@Linux ~]# ls
# 지울것인지 경고 없이 바로 삭제가 되었다. 복구가 거의 불가능해 지워도 될지 확인이 필수

 

참고

--preserve-root 

rm에 기본적으로 설정되어 있는 옵션으로 /디렉토리를 삭제할 수 없도록 한다.

[root@Linux ~]# rm -rf /
rm: it is dangerous to operate recursively on '/' 

rm: use --no-preserve-root to override this failsafe

rm: use --no-preserve-root to override this failsafe 이라는 문구를 출력하며 삭제되지 않아, 중요 파일이 실수로 삭제되는 경우를 막을수 있다.

 

rmdir : 디렉토리 삭제(빈 디렉토리만 삭제 가능)

[root@Linux ~]# mkdir -p test/test2
# 실습을 위해 test디렉토리에 하위 디렉토리 test2를 생성
[root@Linux ~]# ls -R test
test:
test2
test/test2:
[root@Linux ~]# rmdir test
rmdir: failed to remove 'test': Directory not empty
# 비어있는 디렉토리가 아니라 실패

 

'리눅스-기초명령어 > 파일 시스템 관리' 카테고리의 다른 글

stat  (0) 2023.08.31
ln  (0) 2023.08.31
mv  (1) 2023.08.31
CP  (0) 2023.08.31
mkdir  (0) 2023.08.31