Linux 文字化けで削除できないファイルを削除する方法
新サーバーへのリプレースで、システム内部の文字コードを変更した際に、ファイルが文字化け(ファイル名:?A?????B?C???)をしてしまい、ファイル名の変更やファイルの削除ができないことがある。
古いサーバーを新しくリプレースした際に、サイトの更新時のメモ書きなどのファイルが文字化けしているのは、よくある話だ。
しかし、ただ単にファイル名の文字化けで無いことに気づいた時に、WEB制作担当者が焦ることになる。
普通では変更できないからだ。
普段利用しているポピュラーなFTPクライアントやSSH、SFTP、SCPクライアントのソフトでは、ファイル名の変更やファイルの削除ができない。
変更しようとするとエラーになる。
では、コマンドではどうだろうか?文字化けしたファイル名(?A?????B?C???)で、ファイル名の変更やファイルの削除はやはりできない。
では、どのように対応するのか?
ファイルに付与されているi-node番号を使えばできる。
まずは、問題のファイルのi-node番号を調べる。
1 |
ls -li |
調べたi-node番号を元に、ファイルの名前を変更する
1 |
find . -inum <i-node番号> -ok mv '{}' <変更したいファイル名> \; |
ほとんどまれな不具合だけども、システム開発者、サーバー管理者以外にデザイナーも知っておきたい対応方法だ。