Ich möchte alle Dateien auflisten, die einem bestimmten Muster entsprechen, wobei die Groß-/Kleinschreibung ignoriert wird.
Zum Beispiel führe ich die folgenden Befehle aus:
ls *abc*
Ich möchte alle Dateien sehen, die „abc“ als Teil des Dateinamens haben, wobei die Groß-/Kleinschreibung ignoriert wird, z. B.
-rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file1abc.txt
-rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file2ABC.txt
Hinweis
Ich habe die Manpage nach case durchsucht, konnte aber nichts finden.
Akzeptierte Antwort:
Dies wird tatsächlich von Ihrer Shell erledigt, nicht von ls
.
In bash
, würden Sie verwenden:
shopt -s nocaseglob
und dann Führen Sie Ihren Befehl aus.
Oder in zsh
:
unsetopt CASE_GLOB
Oder in yash:
set +o case-glob
und dann Ihren Befehl.
Vielleicht möchten Sie das in .bashrc
einfügen , .zshrc
oder .yashrc
.
Alternativ mit zsh:
setopt extendedglob
ls -d -- (#i)*abc*
(das heißt Globbing ohne Berücksichtigung der Groß-/Kleinschreibung auf einer Per-Wildcard-Basis)
Mit ksh93:
ls -d -- ~(i:*abc*)
Sie wollen Globbing anders funktionieren, nicht ls
, da dies alles Dateien sind, die an ls
übergeben werden durch die Schale.