.fuse_hidden * 파일을 삭제하는 방법?


34

일부 Windows 컴퓨터와 일부 폴더를 공유하도록 구성된 Samba 서버를 실행하는 작은 Linux 서버 (Debian Squeeze)가 있습니다. Windows에서 디렉토리 중 하나를 삭제하려고 할 때 "폴더를 삭제할 수 없습니다"오류가 발생했습니다.

리눅스 콘솔에서 디렉토리를 삭제하려고했는데 비슷한 오류가 발생했습니다.

# rm dir-name -rf
rm: cannot remove `dir-name': Directory not empty

디렉토리의 내용을 나열하고 .fuse_hidden이라는 파일과 16 진수 (000bd8c100000185)를 발견했습니다.

# ls -la dir-name
-rwxrwxrwx 1 root root 5120 Feb 13 11:46 .fuse_hidden000bd8c100000185

.fuse_hidden 파일을 삭제하려고했지만 새 파일이 즉시 만들어졌습니다 (16 진수 숫자 변경 참고).

# rm dir-name/.fuse_hidden000bd8c100000185
# ls -la dir-name
-rwxrwxrwx 1 root root 5120 Feb 13 11:46 .fuse_hidden000bd8c100000186

또한 Midnight Commander를 사용하여 파일을 성공적으로 삭제하려고 시도했습니다.

지금까지 내가 찾은 다른 솔루션은 GUI와 관련이 있으며 콘솔 만 있습니다.

모든 제안을 부탁드립니다.


3
퓨즈 데몬이 활성화 된 것 같습니다. 파일을 삭제하기 전에 중지하십시오.
— ott--

그 동안 내 의견을 변경했습니다.
— ott--

그게 내 첫 생각이지만 중지 할 퓨즈 서비스를 찾을 수 없었고 대신 삼바를 다시 시작했는데 문제가 해결되었습니다. 파일이 사라졌습니다. 감사.
— Lando

rm dir-name -rf?
— Hauke ​​Laging

답변:


52

이것은 다른 시스템이 NFS 마운트에서 연 파일을 삭제할 때 발생하는 것과 유사합니다. 문제는 파일의 "링크 수"가 1보다 크면서 파일 시스템에서 파일이 제거되어 다른 프로세스가 여전히 파일을 열어두고 있다는 것입니다.

  • 파일이 실제로 상주하는 시스템에 로그인하십시오. (네트워크 마운트 없음)
  • 실행 lsof dir-name/.fuse_hidden000bd8c100000185프로세스가 파일 핸들을 열어 잡고있는 것을 알 수 있습니다.
  • 의미가있는 경우 해당 프로세스를 종료하거나 프로세스를 종료하지 않고 열린 파일 핸들을 "정상적으로"해제하기 위해 수행 할 수있는 단계를 파악하십시오.

일반적으로 다른 프로세스가 연 로컬 파일 시스템에서 파일을 삭제하면 OS가 요청을 준수하고 디렉토리 트리에서 파일을 제거하지만 트리가 가리키는 inode는 여전히 운영 체제에서 사용중인 것으로 간주됩니다. 파일을 열 때마다 "링크 수"가 1 씩 증가하고 해당 링크 수가 0이 될 때만 공간이 해제됩니다.

이런 성격의 문제가 발생하면 OS는 디렉토리 트리에서 해당 파일을 제거 하지 않기로 결정한 이유가 무엇이든간에 의미합니다. 직접 inode 번호를 활용하십시오. 처음에는 준수하는 것처럼 보이지만 OS는 숨겨진 점 접두사를 갖도록 이름을 바꾸어 파일 시스템 경로 주소 지정 형식으로 여전히 액세스 할 수 있습니다. 링크 수가 0에 도달하면 공간이 여전히 비워 지지만 해당 오브젝트는 링크가 사라질 때까지 디렉토리에 남아 있습니다.


파일 (이 경우 Samba)을 사용하는 일부 서비스와 관련이 있다고 생각했지만 lsof를 잊어 버렸습니다.
— Lando

나를 문제로 인도하십시오. lsof어떤 프로세스가 여전히 파일을 읽고 있는지 식별하는 데 도움이되었고 모든 것을 제거 할 수있었습니다!
— ThanksForAllTheFish

나는 문제가 있다고 lsof하고 fuser, 어떤 제안을 해당 파일에 대해 모든 프로세스를 제기하지?
— mxmlnkn

0

제안에 감사하지만 아무것도 효과가 없었습니다. 그러나 해결책을 찾았습니다. 외부 SSD를 Windows를 실행하는 PC로 옮겼습니다. "숨겨진 항목"을 선택한 상태에서 파일 탐색기를 사용하여 .Trashes디렉토리를 탐색 하여 .fuser_hidden파일 을 삭제할 수있었습니다 .

이것이 도움이되기를 바랍니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.