중복된 내용이 많을 것으로 알고 있습니다. 나는 거의 모든 것(lsof, 퓨저 등)을 살펴봤지만 그것을 알아낼 수 없습니다.
rm: 'temp_p/sys'를 삭제할 수 없습니다: 장치 또는 리소스가 사용 중입니다.
Bash 스크립트에서 폴더를 삭제하려고 할 때 발생하는 오류입니다. 내가 사용하는 명령은 다음과 같습니다
test -f "$TEMP_DIR" && sudo rm -rf "$TEMP_DIR"
쉘에서 rm -rf를 실행해 보았지만 동일한 출력이 표시됩니다. lsof의 출력은 다음과 같습니다.
lsof +D <directory name>
lsof: 경고: stat() fusion.gvfsd-fuse 파일 시스템 /run/user/76585/gvfs를 수행할 수 없습니다. 출력 정보가 불완전할 수 있습니다. lsof: 경고: vfat 파일 시스템 /media/kostef1/9016-4EF8을 stat()할 수 없습니다. 출력 정보가 불완전할 수 있습니다.
퓨저에도 아무것도 표시되지 않습니다. 숨겨진 파일을 모두 나열해도 점으로 시작하는 항목은 표시되지 않습니다.
답변1
temp_p/sys
이는 파일 시스템이 마운트되어 있으며 먼저 마운트 해제해야 함을 나타냅니다 .
umount -- "$TEMP_DIR/sys"
rm -rf -- "$TEMP_DIR"
또는:
if mountpoint -q -- "$TEMP_DIR/sys"; then
umount -- "$TEMP_DIR/sys" || exit
fi
rm -rf -- "$TEMP_DIR"
먼저 마운트 지점인지 확인하고 마운트 해제할 수 없으면 중단하십시오.
그건 그렇고, rm -rf
위에서는 피했던 마운트된 파일 시스템의 내용을 정리합니다.
파일을 별도의 파일 시스템에 남겨두고 비우려면 $TEMP_DIR
다음을 사용할 수 있습니다 find
.
find "$TEMP_DIR" -xdev -depth -delete
( -delete
힌트가 -depth
있지만 여전히 알림으로 포함하는 것이 좋습니다).
또한 참고하시기 바랍니다test -f "$TEMP_DIR"
$TEMP_DIR
여부 를 테스트하는 것입니다.정기적인파일(심볼릭 링크 확인 후)에 대해 다른 유형의 파일(디렉토리 포함)에 대해서는 false를 반환합니다. 어쩌면 당신은 그 반대를 의미할 수도 있습니다 test -d
. 또한 이미 사라진 파일을 삭제하라는 메시지가 표시 되어도 불평하지 -f
않으므로 rm
존재하지 않을 수 있는 파일에 대해 호출할 수 있습니다.