たとえば、名前に「a」が含まれているように、現在存在するディレクトリ内のすべてのファイルを一覧表示したいと思います。コマンドの最初の部分がであることを知っていますが、ls -l
完了する方法がわかりません。
ベストアンサー1
*
とを含むglobワイルドカードを読む必要があります?
。
*
0個以上の文字の一致?
正確に1文字に一致します。[...]
文字セットの1つと一致します(たとえば、、、のいずれか[abc]
と一致します)。a
b
c
したがって、自分のファイル名を含むすべてのファイル名を見つけるには、abc
globを使用してください*abc*
。このリストは、どこにいてもどこでも使用できます。
ls *abc*
rm -i *abc*
echo *abc*
しかし、コマンドラインが実行されました。後ろに拡張。 (コマンドではなく拡張を実行するシェルです。)したがって、このようなファイル名がある場合、拡張はファイル名-abc
引数なしでフラグセットを解析しls *abc
ます。現在のディレクトリへの明示的なパスを強制するために、ワイルドカード拡張の前にプレフィックスを追加することでこの問題を解決しました。ls -abc
ls
-labc
./
ls ./*abc*
rm -i ./*abc*
echo ./*abc*
注意しls
てくださいコンテンツディレクトリ名自体の代わりにディレクトリ名が一覧表示されます。バージョン-d
でサポートされている場合は、フラグを使用してこの問題を解決してください。-q
ls
ls -dq ./*abc*