negierendes bash pattern

  • Ich frage mich immer wieder, wie ich z.B. für einen Kopierbefehl ein Pattern so erstellen kann, dass gewisse Verzeichnisse/Dateien ausgelassen werden.
    Bsp: Ein Verzeichnis mit den Dateien
    axx
    bxx
    cxx
    ...

    Ich könnte alle Dateien bxx selektieren, indem ich einfach "cp b* dest" befehlige. Aber wie ist es möglich (wenn überhaupt?), umgekehrt alle außer bxx zu kopieren? Man muss dazu doch nicht etwa umständlich eine Schleife mit eingebautem cp konstruieren!?

  • Ja, die Möglichkeit habe ich auch gefunden. Mein Beispiel ist etwas unglücklich gewählt. Die Version mit den eckigen Klammern beschränkt die negative Auswahl leider auf einzelne Zeichen, man kann damit aber nicht einen (Teil)String negieren, und ich habe auch keine andere Möglichkeit dafür gefunden.
    Vermutlich geht's allein mit der Shell expansion nicht, sondern nur mit einem Schleifenkonstrukt oder das Ergebnis von find mit xargs übergeben oder so...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!