Linux上にある文字化けで消せないファイルやディレクトリを消す方法
Linuxの場合、通常はrmコマンドでファイルを削除できます。ですがファイル名が文字化けしていると、rmコマンドでもファイルがないと表示され削除できない場合があります。
私が遭遇した事例は大体Windowsと共有したファイルで文字コードが異なっていた場合でした。
Windows側からもLinux側からも削除が出来なかったのですが、やっと削除する方法が判明しましたのでメモとして残しておきます。
対処方法
今回は「a.txt」を削除したいが消せなかった場合の削除方法について説明します。
ファイルのinode番号を確認する
ls -i
でファイルのinode番号が確認できます。
[user@UTILITY ~]$ ls -i
1798723 a.txt 1406276 bin
1798724 txt.out 1798726 user@192.168.1.1
入力すると上記の様にinode番号とファイル名が表示されます。この場合、a.txtのinode番号は「1406276」になります。
inode番号を使ってファイルを削除する
find . -inum 1406276 -exec rm -rf {} \;
でa.txtが削除できます。「-inum」の後ろにinode番号を入れてやれば大丈夫です。
おわりに
実害無いから放置してたんですが、いい加減面倒くさくなったので調べたら簡単に消せる物ですね。
こういう所はLinuxの方が柔軟だよなぁと思えます。