- PR -

同じ名前のファイルができてしましいました・・

1
投稿者投稿内容
えびぃあん
会議室デビュー日: 2005/08/21
投稿数: 4
投稿日時: 2005-08-30 20:15
i-nodeが違う同じ名前のファイルができてしまいました。
削除をしたいのですが、削除したいi-nodeを持つファイル
が削除できません。i-nodeを指定して消す方法とかあるのでしょうか?
ご教授、宜しくお願いします。

<以下のような状態です>

ls -l
-rw-rw-rw- root other 10000KB test.log
-rw-rw-rw- root other 0KB test.log ←これを消したいです

ls -i
test.log 6333
test.log 6334







cn009
ベテラン
会議室デビュー日: 2004/05/13
投稿数: 72
投稿日時: 2005-08-30 22:00
なんか大変なことになっていますね。
ファイルシステムが壊れたりしていないのでしょうか?

i-nodeを指定して削除というのは通常は無理だと思います。
unlinkシステムコール等はパスでしか指定できませんし。
ディレクトリエントリを直接編集するツールがあれば可能かもしれませんが。

見えない文字が入っているだけで、実は別のファイル名という可能性はどうでしょうか?
「ls -lib」とか「ls -li | hexdump -C」とかしてみると何か分かるかもしれません。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2005-08-30 22:06
本当に同じ名前なんでしょうか?
画面に表示されていない文字を含んでいる、ということはありませんか?
# 通常のファイルシステムに同じ名前のファイルが出来ているのを
# 私は見たことがありませんので。腐ったデバイスドライバが /proc に
# 同名のファイルを作ってるのは見たことあります。

本当に同じ名前だとすると、私ならとりあえず mv してみます。
おそらく、一方のファイルの名前だけが変わると思いますので。

それでもダメなら debugfs(8) で clri する手でしょうけれど。
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2005-08-30 22:55
どもです。がると申します。

んっと。高い確率で「違う名前」だと思うです。
とりあえず、
ls -la > hogege
でファイルに取り込んでからvimあたりで覗いてみると
よいかと。
多分おかしな文字が混入してるんじゃなかろうかと
思うです。
えびぃあん
会議室デビュー日: 2005/08/21
投稿数: 4
投稿日時: 2005-08-31 10:16
アドバイスありがとうございます<(_ _)>

確かに、なにか別の文字が入っている可能性が高いです!
早速確認します。
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2005-08-31 11:53
同じ名前のファイルなら
1) clriコマンドでiノード番号指定で削除する
ファイルシステムに矛盾が生じる
2) ファイルシステムをアンマウントしてfsckコマンドでファイルシステムの矛盾を解消する。
という手順でおこないます。

運用上の制限と絡みますので、最後の手段ですね。
1

スキルアップ/キャリアアップ(JOB@IT)