そもそもなんで「再帰的」という言葉につまづいた?
指定フォルダ配下を再帰検索
find [検索対象フォルダのパス] -type f -name "*[検索したい文字列]*"
上記のようなコマンドを使う機会があり「ん・・・?再帰的ってなんだ?」となった。
再帰的とは?
再帰的定義(Recursive Definition)は、再帰的な定義、すなわち、あるものを定義するにあたってそれ自身を定義に含むものを言う。 無限後退を避けるため、定義に含まれる「それ自身」はよく定義されていなければならない。 同義語として帰納的定義(Inductive Definition)がある。
むちゃくちゃむずかしく書かれている・・・。
もっと簡単な訳はないか探してみたらこちらの訳が参考になった。
「ディレクトリ内に存在するものに一つ一つに対して処理をする」
初心者エンジニアが自分なりに咀嚼してみると(意訳だけど)
上司の責任は、部下の責任だぞ!
みたいな感じでいいんじゃないかな。(おい)
lsコマンドを使って「再帰的」を実現してみる。
まず、testディレクトリにtest2ディレクトリが含まれている状況を作る。
vagrant@localhost:~/room$ mkdir test
vagrant@localhost:~/room$ ls
test
vagrant@localhost:~/room$ cd test/
vagrant@localhost:~/room/test$ mkdir test2
次に、以下のlsコマンドを使って再帰的な状況を実現する。
このコマンドを実行した時、指定したディレクトリの中を再帰的(つまり、ディレクトリの中に含まれるディレクトリにも処理を適用させる)に表示させる動作をする。
$ ls -R test
# ちなみに、この「-Rオプション」は【再帰的に】の意味のリカーシブ(recursive)の略。
vagrant@localhost:~/room$ ls -R test/
test/:
test2
無事、testディレクトリの中身のtest2ディレクトリにもlsコマンドを適応=再帰的にできました!!