휴지통을 비우는 방법?

휴지통을 비우는 방법?

휴지통을 비워도 사라지지 않는 이상한 파일이 휴지통에 있습니다. 파일 이름은 다음과 같습니다.

␀␀␀õ␀␀.õ␀

파일은 분명히 /Volumes/NO NAME/.Trashes/501/에 있습니다("NO NAME"은 내 부트 캠프 Windows 볼륨이므로 왜 .Trashes 디렉토리가 있는지 잘 모르겠습니다. "ls"를 시도하면 해당 파일 또는 심지어 해당 디렉토리는 다음과 같은 결과를 얻습니다.

ls: \004␀␀␀õ\001␀␀.õ\001␀: File name too long

"sudo ls -le", "sudo ls -la" 또는 "sudo ls -i"를 사용해도 같은 일이 발생합니다.

그리고 rm을 시도하거나 심지어 "find . -type f -print0 | sudo xargs -0 rm"을 시도할 때도 비슷한 결과가 나타납니다.

어떻게 제거할 수 있나요?

답변1

이 사람같은 문제가 있어서 Windows에서 디스크 검사를 수행하여 해결했습니다.

답변2

시도해 볼 수 있는 한 가지는 ls보다 낮은 수준의 호출을 사용하여 디렉토리를 나열하는 것입니다.

python -c 'import os; print repr(os.listdir("/Volumes/NO NAME/.Trashes/501/"))'

그리고 그게 효과가 있다면, 아마도 그 unlink()기능을 사용해 보세요

편집: 연결을 해제하려면 시도해 보세요.

python -c 'import os; os.unlink("/Volumes/NO NAME/.Trashes/501/\x04\xe2\x90\x80\xe2\x90\x80\xe2\x90\x80o\xcc\x83\x01\xe2\x90\x80\xe2\x90\x80.o\xcc\x83\x01\xe2\x90\x80")'

답변3

inode로 삭제해 보셨나요?

ls -i

파일과 해당 inode 번호가 표시됩니다.

$ ls -i *.log
 694197 alf.log         694719 mb.log
 694181 fsck_hfs.log     24190 secure.log
 802696 hdiejectd.log   694195 system.log
1094966 install.log     694396 windowserver.log
  24189 ipfw.log

그런 다음 find를 사용하여 inode별로 제거합니다(위에서 mb.log를 삭제하고 싶다고 가정해 보겠습니다).

find . -inum 694719 -exec rm {} \;

답변4

Windows로 부팅하여 파일을 삭제할 수 있는지 확인할 수 있습니다(실제로 볼 수 있다고 가정).

관련 정보