コマンドオプションの再帰的ってなに?

Mac・Linux・Windowsのコマンドを使っていると、そのオプションにはよく「”-r”or”-R”:再帰的に処理をする」がよくでてきます。結果としてこのオプションによって、指定フォルダのサブフォルダも含めて全て処理する動作をします。

しかし、リファレンスにはよく「再帰的」と書かれていて、慣れていない人が読むとどのような動作をするオプションなのか理解しにくいかと思います。私も最初に読んだ時は理解できませんでした。そういった人のために簡単にその意味をまとめました。

スポンサーリンク

再帰的処理の考え方

再帰的処理とは同じ処理を繰り返すという意味です。例えば、フォルダを削除する処理を考えてみましょう。指定したフォルダを削除するにはその中のファイルを削除する処理を行います。処理を実行中にそのフォルダの中にサブフォルダがある場合、実行中の削除処理と同じ削除処理をそのサブフォルダにも実行するということです。
再帰的の説明
なぜ同じ処理を繰り返すことを再帰的と表現するのでしょうか。まずはある処理のプログラムを書く際に、同じ種類の処理プログラムをいくつも書くのは効率が悪いですよね。同じような処理をするなら1つだけプログラムを書いて、その処理をするときは1つのプログラムを呼び出せば効率がよくなります。
フォルダを削除する処理は、削除処理中にサブフォルダが現れるので、実行中の処理と同じ処理を呼び出すことが必要です。つまり「再び帰って同じ処理をする(再帰的)」ことを繰り返してサブフォルダも含めて全て削除されます。

このため、”-r” or “-R”は再帰的処理オプションと呼ばれています。