私は、同じことを行う他の方法があることを知っています。
ls -l | grep "^d"
また
ls -F | grep "/$"
「ls -d」の後に「*/」を追加する理由が気になります。「ls -d」を使用するだけでは機能しないのはなぜですか? その背後に何かストーリーやトリッキーなものはありますか?
-d
フラグを追加すると、ls
ディレクトリ エントリの内容ではなく単に一覧表示するように指示されます。*
指定された toはls
、現在のディレクトリ内のファイルとディレクトリの両方のすべてのエントリに展開されます。したがってls -d *
、サブディレクトリを展開せずに、このディレクトリ内のすべてのエントリを一覧表示します。ただし、を使用する*/
と、bash はこれを展開して、このディレクトリ内のディレクトリのみを含めます。しかし、だけls */
では、すべてのディレクトリが展開されます。フラグを追加する-d
とそれが防止され、このディレクトリ内のディレクトリだけが取得されます。
を使用するls -d *
と、ディレクトリだけでなくファイルも表示されます。を使用するls -d */
と、ディレクトリのみが表示されます。