%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E5%89%8A%E9%99%A4%E9%A0%86%E5%BA%8F.png)
Redhat Linux 5.8 を NetApp ストレージに NFS マウントします。
rm -rf は非常に危険であることは承知していますが、ユーザーがトリガーし、進行中に停止された問題を調査しています。現在、損害を評価しており、ディレクトリをどのようにトラバースするかを知りたいです。rm のソース コードを確認しようとしましたが、削除順序をどのように決定するかを結論付けることができません。
コミュニティを検索していて、この件に関する投稿をいくつか見ましたが、誰も答えを知らないようです。
ありがとう、
答え1
実用的なアプローチとしては、いくつかのテストケースを作成して確認してみることです。
を見てみると実際のコードおそらく、アイテムが読み取られる順序によって異なりますxfts_open
。fts_read
。
実際にトラバーサルと削除を行う関数は のようですrm_fts
。その関数には実際に次のようなコメントがあります。
この関数は、fts が遭遇するファイル システム オブジェクトごとに 1 回呼び出されます。fts は深さ優先のトラバーサルを実行します。
さらに、ディストリビューションでは、これらのコンポーネントのいずれかに任意の数の変更が加えられる可能性があります。そのため、ディストリビューションが実際に何を使用し、何を行うかを個別に確認する必要がある場合があります。