wildcards in der shell

closeThis post was published more than three months ago. Please note that the information offered here may no longer be current and valid. Therefore, please inform yourself about this topic elsewhere. If there is any new information, you can also send me a comment. Thank you so much!

Wildcards sind eine Shell-Funktion, mit der Kommandozeile viel mächtiger als alle GUI-Datei-Manager macht. – Wiki

Hier ist eine Liste der am häufigsten verwendeten Platzhalter in der bash:

* -> Kein oder mehr Zeichen
? -> genau ein Zeichen
[bcde] -> genau eines dieser Zeichen (“b” bis “e”)
[ae] -> genau ein Zeichen aus dem angegebenen Bereich (“a” bis “e”)
[!abcde] -> jedes Zeichen, das nicht aufgeführt ist
[!ae] -> alle Zeichen, die nicht im angegebenen Bereich sind
{debian,linux} -> genau ein ganzes Wort von den angegebenen Wörtern

Beispiele:

Löscht jede Datei in dem aktuellen Verzeichnis, außer die die mit einem “.” beginnen:

rm *

verschiebt alle HTML-Dateien, die das Wort “linux” in ihrem Dateinamen haben, in dem Unterverzeichnis “neues_verzeichnis”:

mv *linux*.html neues_verzeichnis/

zeigt alle Dateien an, im aktuellen Verzeichnis an, die mit “d” beginnen und auf “.txt” enden:

ls d*.txt

löscht alle Dateien, deren Namen “junk.” gefolgt von genau drei beliebigen Zeichen ist:

rm junk.???

zeigt eine Liste aller Dateien oder Verzeichnisse an, deren Namen “sda” oder “hda” mit genau einer darauf folgenden Ziffer ist:

ls [sh]da[0-9]

zeigt eine Liste aller Dateien oder Verzeichnisse an, deren Namen “hda” mit genau zwei darauf folgenden Ziffer ist:

ls hda[0-9][0-9]

alle Dateien oder Verzeichnisse werden angezeigt, deren Namen entweder mit “hd” oder “sd” gefolgt von einem einzelnen Zeichen zwischen “a” und “c”:

ls {hd,sd}[ac]

kopiert alle Dateien, die mit einem Großbuchstaben beginnen, in das Verzeichnis dir2

cp [AZ]* dir2

löscht alle Dateien, die nicht auf “c”, “e”, “h” oder “g” enden:

rm *[!cehg]

Published by

voku

Lars Moelleken | Ich bin root, ich darf das!