[解決済み] Linuxの「stale file handle」とはどういう意味ですか?
2022-03-03 23:02:54
質問
あるターミナルを開いていて、そのターミナルから
cd
をあるディレクトリに作成しました。別の端末でそのディレクトリを削除し、同一のバックアップから復元しました。このとき
vim
というエラーが表示されるのはなぜですか?これはどういう意味でしょうか?(余談ですが、この問題を回避するために
cd $(pwd)
.)
解決方法は?
ディレクトリを削除すると イノード はリサイクルされます。 シェルが持っているそのディレクトリのinode(とそのコンテンツのinode)へのポインタは、もはや有効ではありません。 ディレクトリがバックアップからリストアされるとき、古い inode は ない (ディレクトリとそのコンテンツはランダムなinodeに保存されます。 唯一、同じままなのは 親 ディレクトリは、リストアされたディレクトリと同じ名前を再利用します (あなたがそうするように指示したからです)。
ここで、元のシェルが指しているディレクトリの内容にアクセスしようとすると、その要求を元のinodeの要求としてファイルシステムに伝えますが、そのinodeはその後リサイクルされ、今は全く別のことに使われているかもしれません。 そのため
stale file handle
メッセージは、存在しないデータを要求したためです。
を実行すると
cd
オペレーションを実行すると、シェルはあなたが指定した宛先の inode ロケーションを再評価します。 シェルはディレクトリの新しい inode (およびそのコンテンツの新しい inode) を知っているので、そのコンテンツに対する将来のリクエストは有効です。
関連
-
[解決済み】ENOENTが「そのようなファイルやディレクトリはありません」という意味であるのはなぜですか?
-
[解決済み] 圧縮データが無効です。
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] time(1) の出力における 'real', 'user' および 'sys' はどのような意味ですか?
-
[解決済み] Cプリプロセッサはなぜ "linux "という単語を定数 "1 "と解釈するのですか?
-
[解決済み] bashスクリプトでset -eはどういう意味ですか?
-
[解決済み] マンページでUnixコマンド名の後に表示される括弧内の数字は何を意味しているのですか?
-
[解決済み] Vimの^M文字とはどういう意味ですか?
-
[解決済み] ディレクトリをTarするが,完全な絶対パスはアーカイブに保存しない
-
[解決済み] bashで最新のXファイル以外を削除する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】nohupプロセスをkillするためにプロセスIDを取得する方法?
-
[解決済み】リモートLinuxマシンでC++をコンパイルする - "clock skew detected "の警告が表示される
-
[解決済み】Linuxのdocker-composeでパーミッションが拒否されました【終了】。
-
[解決済み】git clone時に「'https'のリモートヘルパーが見つかりません。
-
[解決済み] tar: エラーは回復不可能:現在終了中
-
[解決済み] エラー: gdal がインストールされているのに、R 依存パッケージのインストール中に gdal-config が見つからない
-
[解決済み] rm -rfを元に戻すには?[クローズド]
-
[解決済み] フォルダが存在するにもかかわらず、マウントポイントが存在しない。手動でマウントできる
-
[解決済み] STRACEがEAGAINを表示する理由(リソースが一時的に使用できないため)
-
[解決済み] mvで移動先のディレクトリが存在しない場合、作成させる方法はありますか?