2

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

␀␀␀õ␀␀.õ␀

Файл, очевидно, находится в /Volumes /NO NAME /.Trashes / 501 / ("NO NAME" - это мой том Windows для загрузки в лагере, поэтому я даже не уверен, почему он имеет.Каталог корзин. Если я пытаюсь "ls" этот файл или даже этот каталог, я получаю:

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

То же самое происходит, если я пытаюсь использовать "sudo ls -le", "sudo ls -la" или "sudo ls -i".

И подобные результаты, когда я пытаюсь найти его или даже "найти. -Type f -print0 | sudo xargs -0 rm"

Как я могу избавиться от этого?

4 ответа4

3

одна вещь, которую можно попробовать, это использовать вызовы более низкого уровня, чем 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

У этого человека возникла та же проблема, и он исправил ее, выполнив проверку диска в Windows.

2

Вы пытались удалить с помощью 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 {} \;
1

Вы можете попробовать загрузиться в Windows и посмотреть, сможет ли он удалить файл (при условии, что он действительно его увидит).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .