web-dev-qa-db-ja.com

破損した名前のファイルを削除します

だからこれが起こった:

$ 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 *動作します

次に何を試すべきですか?システムはRedHat Enterprise LinuxServerリリース6.8です

1
mob

shredは機能するとおっしゃっていますので、シュレッドに-u引数を追加することをお勧めします。

マニュアルページから(man shred):

-u上書き後、ファイルの割り当てを解除して削除します

したがって、ファイルを含むディレクトリでshred -n 0 -u *を試してみます。

1
confetti

これは何年にもわたって私にかなり頻繁に起こりました。私の場合、これは通常、WindowsNTFSパーティションで発生しました。 RHELを使用していますが、同じプロセスが役立つかもしれません。

破損したファイルまたは親ディレクトリを正常に削除できませんでした。

私はいつもしなければなりませんでした:

  • すべてのファイルをバックアップします(破損したファイルのあるディレクトリを除く)
  • パーティションをフォーマットします
  • すべてのファイルを復元する

パーティションのフォーマットが不可能で、破損したファイルが実際の問題を引き起こしていない場合は、次のことも試すことができます。

  • 破損したファイルを独自のディレクトリに置きます
    • 破損したファイルを新しいディレクトリにコピーします
    • 他のすべての適切なファイルを新しいディレクトリにコピーします
  • 破損したファイルのあるディレクトリを$TEMPまたは安全に無視できる場所に移動します
  • 他のすべての適切なファイルを元の場所に戻します
0