Как очистить мусор?

Как очистить мусор?

В моей Корзине есть странный файл, который не исчезает, когда я очищаю корзину. Имя файла выглядит так:

␀␀␀õ␀␀.õ␀

Файл, по-видимому, находится в /Volumes/NO NAME/.Trashes/501/ («NO NAME» — это мой том Windows Boot Camp, поэтому я даже не уверен, почему у него есть каталог .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

покажет файлы и их номера инодов

$ 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 и посмотреть, сможет ли она удалить файл (при условии, что она его действительно увидит).

Связанный контент