본문 바로가기
Study/개발환경

[Linux #0] Device or resource busy로 삭제되지 않는 파일 지우기 (rm: cannot remove '.nfsxxxxxx' ~)

by yellowmango 2024. 5. 19.

Linux 환경에서 프로그램을 사용하다 정상적으로 종료가 되지 않으면 .nfsxxxxxxxx 파일이 생기는데,

 

이 파일을 지우려고 rm -rf를 사용해도

rm: cannot remove '.nfsxxxxxxxxxxxxxxxxxxxxxxx' :  Device or resource busy

 

같은 메시지가 뜨면서 파일이 삭제되지 않는 경우가 있다.

 

이런 파일이 있으면 이 파일이 있는 폴더도 삭제가 안되기 때문에 골치 아플 때가 많다.

 

이럴 때는 저 파일을 잡고 있는 process를 종료시킨 다음 삭제를 해야한다.

 

아래 과정대로 처리하면 된다.

 

 

1. lsof +D 커맨드로 파일을 잡고 있는 프로세스 알아내기

> lsof +D /path        #지우고 싶은 파일이 들어있는 디렉토리 path

COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
zsh     23678   USER1  cwd    DIR    1,5      160 22548916 .
lsof    23821   USER1  cwd    DIR    1,5      160 22548916 .
lsof    23822   USER1  cwd    DIR    1,5      160 22548916 .nfsxxxxxxxxxxxxx

 

이 커맨드를 치면 .nfsxxxxxxxxxxxx 파일을 잡고 있는 프로세스의 pid를 알 수 있다. (위 예시에서는 23822)

 

 

2. 프로세스 종료

> kill 23822

 

kill 커맨드로 .nfsxxxxxxxxxxxxx 파일을 잡고 있는 프로세스를 종료시킨다.

 

 

3. rm .nfsxxxxxxxxxxxxxxxx

> rm .nfsxxxxxxxxxxxxxxxx

 

프로세스를 종료시키면 .nfsxxxxxxxxxxxxxxxx파일이 없어질수도 있는데 그대로 남아있다면 rm로 지워주면 된다.

 

이제는 잘 지워질 것이다.

댓글