Kopieren und Ausschließen interner Dateien oder Verzeichnisse (entspricht rsync –exclude)

Wenn ich Sie bitten würde, einen Befehl zum Kopieren eines Ordners an einen anderen Speicherort zu erwähnen, würde dies fast jeder erwähnen cp.

Wenn ich Ihnen jetzt sage, dass Sie zusätzlich den gesamten Inhalt dieses Ordners mit Ausnahme einer Datei kopieren müssen, würden viele nachdenken und andere erwähnen rsync, dann mit dem Parameter -Ausschließen Sie können X-Dateien oder Ordner ausschließen und nicht kopieren. Aber ... wussten Sie, dass Sie mit cp dies auch tun können? ... O_O … Ja Freunde, cp hat seine eigene "ausschließen" hehe.

Zum Beispiel haben wir den Ordner Isos enthält: ubuntu.iso, debian.iso y archlinux.iso :

Und es kommt vor, dass wir in den anderen Ordner kopieren wollen (Distributionen-deb, die leer ist) die Datei debian.iso y ubuntu.isodas heißt, alle außer archlinux.iso

Dafür könnten wir eine Datei und dann eine andere manuell kopieren, aber es ist viel intelligenter, die Optionen zu verwenden, die uns das System bietet, oder? … 😀… zum Beispiel, um dies einfach zu tun:

cp isos/!(archlinux.iso) distros-deb/

Und dies reicht aus, um ALLES, was im isos-Verzeichnis enthalten ist, nach distros-deb zu kopieren, alles außer archlinux.iso 😉

Angenommen, wir haben nicht nur diese 3 Dateien, sondern auch fedora.iso und chakra.iso ... und wir möchten dasselbe tun, es würde auch von der Kopie fedora.iso und chakra.iso ausgeschlossen, mal sehen wie es geht:

cp isos/!(archlinux.iso|fedora.iso|chakra.iso) distros-deb/

Wie Sie sehen, können mehrere Dateien oder Ordner ausgeschlossen werden. Wir trennen sie nur durch eine Pipe (|) und Materie gelöst 😀

Damit meine ich nicht, dass cp für alles besser ist als rsync ... aber beide sind zum Beispiel hervorragende Werkzeuge ... wussten Sie den Parameter? -u de cp? ... hehe, sicher nicht 😉

Nun, nichts mehr hinzuzufügen ... ist das ein interessanter Tipp? 😀

Grüße


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Josh sagte

    Ich kannte diese Methode nicht, man lernt immer etwas Neues.
    Hervorragender Tipp, danke.

    1.    KZKG ^ Gaara sagte

      dank

  2.   Croto sagte

    Der Tipp ist sehr gut, ich wusste es nicht! Es bleibt nur den Arch- und Fedora-Benutzern zu erklären, warum Sie die Hehe ihrer ISO ausgeschlossen haben

    1.    KZKG ^ Gaara sagte

      JAJAJAJAJAJA Ich habe die Arch- und Fedora-ISOs nicht eingefügt, weil das Beispiel versucht hat, nur Deb-Distributionen zu kopieren… HAHAHAHAHA.

  3.   Hexborg sagte

    Hier müssen wir einige Punkte ansprechen. Zum einen funktioniert dies nur, wenn die Extglob-Option der Bash aktiviert ist. Ist dies nicht der Fall, wird es mit folgendem Befehl aktiviert:

    shopt -s extglob

    Es kann in die .bashrc-Datei gestellt werden, damit es immer aktiviert ist.

    Der andere Punkt ist, dass dieser Trick keine Option des Befehls cp ist, sondern auf der Bash-Ebene funktioniert. Dies bedeutet, dass es mit jedem Befehl verwendet werden kann. Nicht nur mit cp. Sie können den Test durchführen, indem Sie Folgendes schreiben:

    echo Dateien: isos /! (archlinux.iso | fedora.iso | chakra.iso)

    Ansonsten ist es ein sehr nützlicher Trick. Zusammen mit der Option -u zu cp, die ich auch von Zeit zu Zeit nützlich finde.

    1.    Daniel Rojas sagte

      Sicher, es ist ein regulärer Ausdruck

      1.    Hexborg sagte

        Es ist eigentlich ein erweitertes Muster. Ein regulärer Ausdruck ist etwas anderes, aber es sieht so aus. 🙂

    2.    KZKG ^ Gaara sagte

      Ja, das -u in cp ist wirklich interessant. Ich gebe zu, dass ich ein großer Fan von Rsync bin ... aber ich weiß nicht, ich habe eine Bindung an den armen Cop hahaha.

      Über die Aktivierung von shopt wusste ich nicht, ich nahm an, dass dies automatisch funktioniert, danke für den Tipp.

      Und ja, ich hatte den Verdacht, dass es mehr mit Bash als mit cp zu tun hat, aber ich hatte noch nicht versucht, einen rm oder eine Katze oder so etwas zu machen :)

      Danke für den Kommentar, das tue ich wirklich 😀

      1.    Hexborg sagte

        Es ist mir eine Freude, meinen Beitrag zu leisten. 🙂

        1.    KZKG ^ Gaara sagte

          Tatsächlich war ich schon immer daran interessiert, etwas über reguläre Ausdrücke zu lernen ... Bist du aufgeregt und machst einen Newbie-Beitrag darüber? 😀

          1.    Hexborg sagte

            LOL !! Du hast mich schon. 🙂 Mit wie glücklich ich war, ohne zu kommentieren… 🙂

            Die Wahrheit ist, dass er mich anruft. 🙂 Aber ich muss noch ein bisschen darüber nachdenken. Es scheint schwer zu erklären.

            1.    KZKG ^ Gaara sagte

              hahahahaha nichts mach dir keine Sorgen, du kommentierst immer wieder, dass du immer noch ahahahaha lernst, das Wichtigste ist zu teilen 😀


  4.   Tufadorin sagte

    Sehr guter Tipp Sie werden nie ins Bett gehen, ohne etwas Neues zu lernen.

    1.    KZKG ^ Gaara sagte

      Genau und das Beste ist, ich lerne viel aus den Kommentaren, die Sie in den Posts hinterlassen. Ich liebe es, jeden Tag seltsame Dinge zu lernen. HAHAHA.

  5.   giskard sagte

    Guter Trick. Ich kannte ihn nicht 🙂

    1.    KZKG ^ Gaara sagte

      Ein Vergnügen 😉

  6.   @ Jlcmux sagte

    Aber wenn Sie Isos setzen, wollen Sie debian.iso ubuntu.iso /! (Etc etc) setzen? Nein

  7.   Heber sagte

    In der Tat stellte sich heraus, dass es ein sehr interessanter Tipp war. Nicht nur wegen des Artikels selbst, sondern auch wegen des Mehrwerts der Kommentare.
    Schöne Community von <º Linux

  8.   MARTHE VOM BRUNNEN sagte

    Ihre Hilfe hat mir nichts gebracht, Sie sollten ein Beispiel geben, damit die Schüler Ihre großartige Technik besser verstehen können.
    Vielen Dank, dass Sie sich die Zeit genommen haben. Ich werde mich immer an diese Seite in meinem Herzen erinnern

  9.   felipe016 sagte

    Sie sagen, Sie überspringen Verzeichnisse, aber in den Beispielen überspringen Sie nur Dateien. Wissen Sie, wie man ein bestimmtes Verzeichnis überspringt? Grüße.