1

Так и случилось:

$ ls
''$'\342\200''abc2.16.5'
$ ls | od -c
0000000 342 200   a   b   c   2   .   1   6   .   5  \n
$ ls -il
76236897 -rw-rw-r-- 1 mob users 0 Aug 16 17:52 ''$'\342\200''abc2.16.5'

Как мне удалить этот файл? Вот некоторые вещи, которые не сработали:

$ rm -i -- *
rm: remove regular file ''$'\342\200''abc2.16.5'? y
rm: cannot remove ''$'\342\200''abc2.16.5': No such file or directory

$ rm ./*
rm: cannot remove './'$'\342\200''abc2.16.5': No such file or directory

$ rm ./<TAB>        # for file name completion
rm: cannot remove './'$'\342\200''abc2.16.5': No such file or directory

$ find . -delete
find: cannot delete './\342\200abc2.16.5': No such file or directory

$ perl -e 'unlink(glob("*")) or die $!'
$ perl -e 'unlink(glob("*2.16.5")) or die $!'
No such file or directory at -e line 1.

$ find . -inum 76236897 -delete
find: cannot delete './\342\200abc2.16.5': No such file or directory

$ rename * xxx ; rm -v xxx
rm: cannot remove 'xxx': No such file or directory

Любопытно, что truncate * --size 0 работает, cat * работает, shred * работает

Что я должен попробовать дальше? Система Red Hat Enterprise Linux Server, версия 6.8

2 ответа2

1

Поскольку вы говорите, что shred работает, я хотел бы предложить добавить аргумент -u в shred.

Из справочной страницы (man shred):

-u освободить и удалить файл после перезаписи

Поэтому я бы попробовал shred -n 0 -u * в каталоге, содержащем файл.

0

Это случалось со мной довольно часто на протяжении многих лет. Для меня это обычно происходит в разделе Windows NTFS; Вы используете RHEL, но, возможно, тот же процесс поможет вам.

Мне никогда не удавалось успешно удалить поврежденный файл или родительский каталог.

Я всегда должен был:

  • Резервное копирование всех файлов (за исключением каталога с поврежденным файлом)
  • Форматировать раздел
  • Восстановить все файлы

Если форматирование раздела невозможно, а поврежденный файл не вызывает особых проблем, вы также можете попробовать следующее:

  • Поместите поврежденный файл в его собственную директорию
    • скопировать поврежденный файл в новый каталог
    • скопируйте все другие хорошие файлы в новый каталог
  • Переместите каталог с поврежденным файлом в $TEMP или в другое место, где его можно безопасно проигнорировать.
  • Положите все остальные хорошие файлы туда, где они были

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