0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

同一ファイル名のファイルが同一のディレクトリに現れるトラブル

Last updated at Posted at 2022-04-18

同一ファイル名のファイルが同一のディレクトリに現れる

言葉で説明するよりも見たほうがわかりやすので、下記のようなコマンドと結果が返るとします。
※前提として”同一ファイル名で同一のディレクトリに作成することはできません”ということを念頭に。

状況の調べ方

$ ls -li
268947 -rw-r--r-- 1 root root  8 Dec 20 12:32 app
268944 -rw-r--r-- 1 root root 24 Dec 20 12:33 app

この場合どうやって状況を調べますか?
iノードは別なので同一ファイルを間違って表示しているのではないように見えます。
まずはファイルの名前にフォーカスして疑ってみましょう。

  • ファイル名の最後に空白がついている
  • ファイル名がUNICODEのファイル名で、ASCIIの'aaa'とUNICODEの'aaa'で異なっている
    などが経験的に可能性があります。ではこれをどうやって検証するかですが、
$ ls -m            
app, app , test.sh

のような結果が得られれば、最後に空白がついているのが一目瞭然!です。
また

$ ls -m | od

のようにしてHEXの結果を得ることにより、空白を確実に見つけることもできます。
また別のパターンとして、UNICODEとASCIIで異なるような場合は、LANG=CとしてEnvironment Variableを変更の上lsコマンドを実行します。
このとき、Unicodeのコードの場合表示が変化します。

268947 -rw-r--r-- 1 root root  8 Dec 20 12:32 app
268944 -rw-r--r-- 1 root root 24 Dec 20 12:33 a\321\200\321\200

同じファイルが2個もある、という状況にもし遭遇するようなことがあったら頭に入れておくと混乱を避けられるかと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?