6

私は、同じことを行う他の方法があることを知っています。

ls -l | grep "^d"

また

ls -F | grep "/$"

「ls -d」の後に「*/」を追加する理由が気になります。「ls -d」を使用するだけでは機能しないのはなぜですか? その背後に何かストーリーやトリッキーなものはありますか?

4

2 に答える 2

8

-dフラグを追加すると、lsディレクトリ エントリの内容ではなく単に一覧表示するように指示されます。*指定された toはls、現在のディレクトリ内のファイルとディレクトリの両方のすべてのエントリに展開されます。したがってls -d *、サブディレクトリを展開せずに、このディレクトリ内のすべてのエントリを一覧表示します。ただし、を使用する*/と、bash はこれを展開して、このディレクトリ内のディレクトリのみを含めます。しかし、だけls */では、すべてのディレクトリが展開されます。フラグを追加する-dとそれが防止され、このディレクトリ内のディレクトリだけが取得されます。

于 2013-04-01T03:59:32.463 に答える
4

を使用するls -d *と、ディレクトリだけでなくファイルも表示されます。を使用するls -d */と、ディレクトリのみが表示されます。

于 2013-04-01T03:56:21.503 に答える