Ich habe ein Problem beim Entfernen des leeren Verzeichnisses. Strace zeigt einen Fehler an:
rmdir("empty_dir") = -1 ENOTEMPTY (Directory not empty)
Und ls -la empty_dir
zeigt nichts. Also habe ich mich mit debugfs mit dem fs (ext4) verbunden und sehe die versteckte Datei in diesem Verzeichnis:
# ls -lia empty_dir/
total 8
44574010 drwxr-xr-x 2 2686 2681 4096 Jan 13 17:59 .
44573990 drwxr-xr-x 3 2686 2681 4096 Jan 13 18:36 ..
debugfs: ls empty_dir
44574010 (12) . 44573990 (316) ..
26808797 (3768) _-----------------------------------------------------------.jpg
Warum könnte das passieren? Und eine Chance, dieses Problem zu lösen, ohne die Fs abzunehmen und vollständig zu überprüfen?
Zusätzliche Information:
Die "versteckte" Datei ist nur eine normale JPG-Datei und kann vom Bildbetrachter geöffnet werden:
debugfs: dump empty_dir/_-----------------------------------------------------------.jpg /root/hidden_file
# file /root/hidden_file
/root/hidden_file: JPEG image data, JFIF standard 1.02
rm -rf empty_dir
funktioniert nicht mit dem gleichen Fehler:
unlinkat(AT_FDCWD, "empty_dir", AT_REMOVEDIR) = -1 ENOTEMPTY (Directory not empty)
find empty_dir/ -inum 26808797
zeigt nichts.
rm -rf thatdirectory
meiste Zeit versucht Job. Andernfalls besteht die letzte Methode darin, die Datei von ihrer Inode-Nummer zu löschen. find . -inum [inode-number] -exec rm -i {} \;
zum Beispiel