web-dev-qa-db-ja.com

ディレクトリを削除できません

OS Xホストで、ディレクトリ「foo」の削除に問題があります。

mymac:.Trashes joe$ ls
foo
mymac:.Trashes joe$ ls foo/
Ảnh011.jpg  Ảnh012.jpg  Ảnh013.jpg
mymac:.Trashes joe$ ls -l foo/
ls: Ảnh011.jpg: No such file or directory
ls: Ảnh012.jpg: No such file or directory
ls: Ảnh013.jpg: No such file or directory
mymac:.Trashes joe$ rm -rf foo/
rm: foo/: Directory not empty
mymac:.Trashes joe$ Sudo rm -rf foo/
Password:
rm: foo/: Directory not empty

ご覧のとおり、ディレクトリ「foo」の下には、lsでしか実行できないファイルがいくつかあります。ランニング ls -lはエラーを返します。個々のファイルやディレクトリを削除できません。 「空のごみ箱」の使用も機能しませんでした。 「ディスクユーティリティ」->「ディスクの確認」と「ディスクの修復」も試しました。

編集:要求に応じて、ここに詳細があります

mymac:.Trashes joe$ ls -del foo/
drwxrwxrwx  2 joe  staff  16384 13 May 11:19 foo/
mymac:.Trashes joe$ ls -del foo
drwxrwxrwx  2 joe  staff  16384 13 May 11:19 foo
mymac:.Trashes joe$ LC_ALL=C
mymac:.Trashes joe$ ls -ABeli foo/
total 1812
18972612676 -rwxrwxrwx  1 joe  staff  305951 13 May 11:19 Ảnh011.jpg
19123958587 -rwxrwxrwx  1 joe  staff  309745 13 May 11:19 Ảnh012.jpg
18511775654 -rwxrwxrwx  1 joe  staff  310907 13 May 11:19 Ảnh013.jpg
mymac:.Trashes joe$ find foo/
foo/
foo//Ảnh011.jpg
foo//Ảnh012.jpg
foo//Ảnh013.jpg
2
joe

どういうわけか、ファイルの有効なノードにリンクしていないエントリ名がfooにあるようです。それがどのように起こり得るのか、なぜrm -rfは、削除したとしても、ディレクトリからエントリを削除しませんでした。

しかし、おそらくディレクトリエントリを有効なファイルノードに関連付けると、削除されますか?言い換えれば、多分これ?

touch foo/Ảnh011.jpg
rm foo/Ảnh011.jpg

うーん。他の誰かが//以下の結果では、まあ、予想外ですか?

mymac:.Trashes joe$ find foo/
foo/
foo//Ảnh011.jpg
foo//Ảnh012.jpg
foo//Ảnh013.jpg

以下のようになると思いました。 //(それが何であれ)問題の手がかりになっていますか?

foo/Ảnh011.jpg
foo/Ảnh012.jpg
foo/Ảnh013.jpg
2
irrational John

最初にファイルの名前を変更してみましたか?ファイルの先頭には「Ả」という特殊文字が付いています。最初にファイルの名前を変更してから、削除してみてください。

1
Ruben

上記の返信は良いですが、知っておくべきことがもう1つあります。

デフォルトでは、「ls」(または「ls -l」)は、名前が「。」で始まるファイルを表示しません。 (別名「ドットファイル」)

すべてのファイルが表示されるようにするには、「ls-a」を使用します。

'。'で始まる他のファイルがあるかどうかは定かではありませんが、可能です。 'foo /'で、それが空ではない理由です。

そうは言っても、それらは '/ bin/rm -rf foo'で削除されるべきだったので、そのディレクトリには他の問題がなければなりません。

1
arielf

このコマンドでファイルを削除してから、フォルダを削除してみてください。

find . -iname '*.jpg' -exec rm {} \;
0
Ander2