文字Lで始まらないディレクトリ内のすべてのフォルダを一覧表示するには?

文字Lで始まらないディレクトリ内のすべてのフォルダを一覧表示するには?

Lで始まらないすべてのフォルダを一覧表示したい。

ls [L]* ///gives all the folders starting with L 

検索を逆にしてLで始まらないすべてのフォルダを一覧表示したいですか?

答え1

使用^:

ls [^L]*

必要なことを行います。ls [L]*目的の項目に対応するとします(フォルダだけでなく、「L」で始まるすべての項目が一覧表示されます)。

cuonglmの答えを使用してリストをフォルダに制限する方法を示しますzsh

答え2

使うことを言いますワイルドカード、POSIXシェルのディレクトリまたはファイルをフィルタリングできません。

そしてzsh

print -rl -- [^L]*(/)

ディレクトリを隠すには:

print -rl -- [^L]*(D/)

フロント:

find . ! -name . -prune ! -name 'L*' -type d

答え3

実際にはls [L]*(と同じls L*)名前で始まるディレクトリではなく現在のディレクトリのファイルを一覧表示し、名前で始まる現在のディレクトリのLサブディレクトリの内容を一覧表示しますL。現在のディレクトリからディレクトリではなく名前で始まるファイルを一覧表示するには、次のオプションを渡すL必要があります。-dls -d L*

名前が次の文字で始まらないファイルを一致させるには、L次のようにします。グローバルモード [^L][!L](他のシェルと互換性があるように作成することもできます)。[^L]Exceptを除くすべての文字と一致するためL[^L]*Exceptを除くすべての文字で始まるファイル名と一致しますL。ファイル名は空白にできないため、[^L]*正確な一致はL

またはextended_glob、オプションが設定されている場合(ほとんどのユーザーがに入力.zshrc)、^演算子を使用して一致を無効にすることもできます。^L*一致しないファイル名と一致しますL*。つまり、で始めないでくださいL。この構文は zsh にのみ適用されます。

関連情報