隠しディレクトリを含めて現在のディレクトリに含まれるディレクトリを表示する


隠しディレクトリを含めて現在のディレクトリに含まれるディレクトリを表示する

すべてのディレクトリを表示するためにls -d */を実行すると
*が隠しファイル(.始まりのファイル)を含めないため、
想定とは違う表示になってしまう。

以下が対応したコード。

(shopt -s dotglob ; ls -d */)

()で囲っている理由は、
このプロセスでのみ*が隠しファイルを含めるようにするため。

また、shopt -s dotglobを忘れてしまった場合は素直に以下のようにしても表示できる。

ls -d .*/;ls -d */

 蛇足

man shopt でマニュアルが表示されなかった理由
→shoptはシェル組込みコマンドであるため、man bashにshoptのマニュアルが含まれる
(シェル組込みコマンドであることはtype shoptで確認可能)

dotglobは何の略なのか
→bashにはglobという単語がある。グロブはワイルドカードを使用したときのパターンのこと。