Sie können Dateien, die nur in Kleinbuchstaben mit einem einzigen Befehl und einer einfachen Dateikugel enden, nicht direkt auflisten. Hier ist der Grund, warum und wie man es umgeht:
Warum es schwierig ist:
* Basic GlobeBing: Standard -UNIX -Shells verwenden grundlegende Globbing -Muster (*,?, [] Usw.). Diese können zu jedem Zeichenfall übereinstimmen, können jedoch nicht zwischen Großbuchstaben und Kleinbuchstaben für eine bestimmte Filterung unterscheiden.
Die Lösung:Verwenden von `find` und` grep`
Sie können "Find" und "Grep" kombinieren, um dies zu erreichen. So wie:wie:
`` `bash
finden . -Type f -print0 | grep -ez '^./[^/]*[a -z] \.? [^/]*$' | xargs -0 ls -l
`` `
Erläuterung:
1. `Finden Sie. -Type f -print0`:
- `find .`:beginnt im aktuellen Verzeichnis zu suchen (` .`)
- `-Type F`:Sucht nur nach regulären Dateien
- `-print0`:Drucke gefundene Dateien, die von Nullzeichen getrennt sind (sicherer für Dateinamen mit Leerzeichen)
2. `grep -ez '^./[^/]*[A -z] \.? [^/]*$'`:
- `grep`:filtert die Ausgabe von` find`
- `-e`:Ermöglicht erweiterte reguläre Ausdrücke für mehr Flexibilität
-`-z`:Behandelt Input als null-terminierte Strings behandelt
- der reguläre Ausdruck:
- `^./`:Entspricht dem Beginn der Linie, gefolgt von "./" (um relative Pfade abzustimmen)
- `[^/]*`:Übereinstimmung mit allen Zeichen außer "/" (stellt sicher, dass wir noch im Dateinamen sind)
- `[a-z]`:entspricht einem einzelnen Kleinbuchstabenbuchstaben
- `\.? [^/]*`:Entspricht einem optionalen Punkt (`.`), gefolgt von Zeichen außer"/"
- `$`:entspricht dem Ende der Linie
3. `xargs -0 ls -l`:
-`xargs -0`:Nimmt die null -terminierte Dateiliste von` grep` und erstellt Befehlsargumente
- `ls -l`:Listet die Dateien auf (Sie können diese auf jeden Befehl ändern, den Sie in den gefilterten Dateien ausführen möchten).
Wichtige Hinweise:
* versteckte Dateien: Dies findet versteckte Dateien (beginnend mit '.'), Die den Kriterien erfüllen.
* Fallempfindlichkeit: Die Dateiname-Expansion Ihrer Shell kann Fallempfindlichkeit oder unempfindlich sein.
Lassen Sie mich wissen, ob Sie die Suche weiter verfeinern möchten!