再帰的とは

Linux のコマンドなどで出てくる、

ディレクトリ以下を再帰的に云々
(ディレクトリ以下を再帰的にコピーなど)

ディレクトリの中にあるディレクトリも同様の処理を行う、という認識しかない。
ので、調べた。

( この認識で合っていた。しかし調べる前はコマンドの前提を知らなかった! )

 

まず、

再帰的」の意味。

再帰」とは
あるものの定義や記述にそれ自身が含まれていること

イメージ
f:id:koshinRan:20170115113436p:plain

「的」は「その性質をもった」という意味。
再帰的定義は、再帰の性質をもった定義という意味になる。

 

次に、

Linuxのコマンドで出てくる「ディレクトリを再帰的にXXする」のオプションになる「-r」

コマンドの大前提として、

コマンドは

ディレクトリ内に存在するもの一つ一つに対して処理をする

という大前提があるらしい。
コマンドに -r オプションを付けた場合、

ディレクトリ内に存在するもの一つ一つに対して処理をする」
「その際、その一つがディレクトリならば、その」
ディレクトリ内に存在するもの一つ一つに対して処理をする」
「その際、その一つがディレクトリならば、その」
ディレクトリ内に存在するもの一つ一つに対して処理をする」
「その際、…」

となる。

これを「ディレクトリを再帰的に処理する」と言っている。

 

例えば、hogeディレクトリをfugaファイルとしてコピーする以下のコマンドを
実行した時。
$ cp -r hoge fuga

hogeディレクトリを
f:id:koshinRan:20170115114329p:plain

 

Aの中にA、
処理する対象の中を処理する。
f:id:koshinRan:20170115113436p:plain f:id:koshinRan:20170115114329p:plain

まぁ同じかな…?

 

 

文は以下から参照。というか引用。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1364814303

 

以上。
次は再帰処理( 再帰呼び出し )について。