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...

  • Wie wärs mit sowas in der art:

    Code
    ls | grep -v foopattern


    Evtl. wäre es hilfreich das konkrete Problem zu posten.

    Let us be thankful we have commerce. Buy more. Buy more now. Buy. And be happy.

Jetzt mitmachen!

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