ゴミ箱を空にするにはどうすればいいですか?

ゴミ箱を空にするにはどうすればいいですか?

ゴミ箱を空にしても消えない奇妙なファイルがゴミ箱にあります。ファイル名は次のようになります:

␀␀␀õ␀␀.õ␀

ファイルは、どうやら /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 を起動して、ファイルを削除できるかどうかを確認してください (実際にファイルが見えると仮定)。

関連情報