pwd : ../bin
binの下にdatafiles
というディレクトリがあります。
メタ文字とls -lL
コマンド(小文字のLと大文字のL)を使用して、datafiles
ディレクトリの下にドット「.
」と文字「f」または「u」を含むすべてのファイル名を一覧表示します'ドットの後の任意の場所。
試しました:ls -lL datafiles *.*f*u
ls -lL datafiles .[f*u]
答えてくれてありがとう。残念ながら、どのソリューションも希望どおりに機能しませんでした。
質問を明確にすると、/bin/datafiles/file.backup
がディレクトリのルートになります。 /bin
ディレクトリから使用したコマンドは、ls -lL datafiles
の後にメタ文字が続きます。
私は、ドットの後にf
またはu
が続き、直接f
またはu
が続いていないfile.backup
を探しています(任意の場所ドットの後)、f
またはu
で終了しない。
これは、ドットの後にfまたはuが付いているが、fまたはuで終わっていないデータディレクトリ内のファイルを検索します。
ls -lL datafiles/*.*[fu]*[^fu]
「f or u」と書いた。これをグロブに書き込むには、[fu]
を使用します。 f
またはu
の前にドットを付けることも要求するには、次を試してください。
ls -lL .*[fu]* *.*[fu]*
上記の最初のグロブ.*[fu]*
は、ドットで始まるファイルに展開されます(つまり、通常は「非表示」になっています)。 2番目の*.*[fu]*
は、名前のどこかにドットがあるがしないで始まるファイルに展開されます。
隠しファイルは通常、さまざまなプログラムの構成ファイルとして機能します。それらを表示したくないが、通常は表示したくない場合は、最初のグロブを省略して単純に使用します。
ls -lL *.*[fu]*
*.*f*u
は、f
が後に続く(必ずしも直後ではない)ドットを含み、u
で終わるファイル名に展開されます。つまり、このグロブでは、f
とu
の両方がファイル名に存在し、f
の次にu
の順序で出現する必要があります。
通常、*
は0個以上の任意の文字を意味します。特殊なケースとして、上記のファイルはドットで始まるファイルと一致しません。そのようなファイルは、慣例により「非表示」になっているためです。
.[f*u]
は、ドットの直後に文字f
、*
、またはu
(以降は何もない)のいずれかが続くファイル名に展開されます。星は角かっこ内にあるため、通常の0個以上の文字の意味を失い、リテラル*
になります。