lsとワイルドカードを使用してファイルを検索する

lsとワイルドカードを使用してファイルを検索する

pwd : ../binbinの下にというディレクトリがありますdatafiles

メタ文字とコマンド(小文字と大文字のLを含む)を使用して、ドットの後に文字「f」または「u」を含むドットを含むディレクトリ内のすべてのファイルls -lL名を一覧表示します。datafiles.

私は試した:ls -lL datafiles *.*f*u

ls -lL datafiles .[f*u]

回答ありがとうございます。残念ながら、これらの解決策のどれも私が望む方法で動作しませんでした。

質問を明確にすると、/bin/datafiles/file.backupディレクトリのルートです。/binディレクトリでコマンドls -lL datafilesとメタ文字を使用しました。

私が探しているのは、file.backupドットの後ろにorがありfuすぐ後ろにfor u(ドットの後にどこでも)がなく、forで終わらないことですu

ベストアンサー1

これにより、ドットの後に f または u が続くが f または u で終わらないデータディレクトリ内のファイルが検索されます。

ls -lL datafiles/*.*[fu]*[^fu]

この質問のバージョン1への回答

「fまたはu」と書いた。グローバルに作成するにはを使用します。または、前にドットを追加する[fu]には、次を試してください。fu

ls -lL .*[fu]* *.*[fu]*

上記の最初のglobは、ドット.*[fu]*で始まるファイルに展開されます(つまり、通常は「隠されている」ことを意味します)。 2番目の項目は、*.*[fu]*名前のどこかで少し拡張されますが、欲しくないドットから始めてください。

隠しファイルは、さまざまなプログラムの構成ファイルとして使用されることがよくあります。見たくないし、一般的に見たくない場合は、最初のglobを省略して次を使用してください。

ls -lL *.*[fu]*

グローブの情報

  • *.*f*uドットを含むfファイル名に展開され、その後は(必ずすぐではない)で終わりますu。つまり、このglobでは、両方ともfファイル名に表示され、そのu順序で表示されます。fu

    通常、*ゼロ個以上の文字を意味します。特別なケースでは、上記のファイルはドットで始まるファイルと一致しません。なぜなら、これらのファイルは慣例に従って「隠されている」からです。

  • .[f*u]ドットと文字のいずれか、または(それ以降は他の文字なし)で構成されるファイル名にf展開さ*れますu。アスタリスクは角かっこ内にあるため、ゼロ個以上の文字という一般的な意味を失ってリテラルになります*

おすすめ記事