名前に特定の文字を含むファイルのリスト

名前に特定の文字を含むファイルのリスト

たとえば、名前に「a」が含まれているように、現在存在するディレクトリ内のすべてのファイルを一覧表示したいと思います。コマンドの最初の部分がであることを知っていますが、ls -l完了する方法がわかりません。

ベストアンサー1

*とを含むglobワイルドカードを読む必要があります?

  • *0個以上の文字の一致
  • ?正確に1文字に一致します。
  • [...]文字セットの1つと一致します(たとえば、、、のいずれか[abc]と一致します)。abc

したがって、自分のファイル名を含むすべてのファイル名を見つけるには、abcglobを使用してください*abc*。このリストは、どこにいてもどこでも使用できます。

ls *abc*
rm -i *abc*
echo *abc*

しかし、コマンドラインが実行されました。後ろに拡張。 (コマンドではなく拡張を実行するシェルです。)したがって、このようなファイル名がある場合、拡張はファイル名-abc引数なしでフラグセットを解析しls *abcます。現在のディレクトリへの明示的なパスを強制するために、ワイルドカード拡張の前にプレフィックスを追加することでこの問題を解決しました。ls -abcls-labc./

ls ./*abc*
rm -i ./*abc*
echo ./*abc*

注意しlsてくださいコンテンツディレクトリ名自体の代わりにディレクトリ名が一覧表示されます。バージョン-dでサポートされている場合は、フラグを使用してこの問題を解決してください。-qls

ls -dq ./*abc*

おすすめ記事