Interne bestanden of mappen kopiëren en uitsluiten (equivalent aan rsync –exclude)

Als ik je zou vragen om een ​​commando te noemen om een ​​map naar een andere locatie te kopiëren, zou bijna iedereen dat noemen cp.

Als ik je nu vertel dat je bovendien alle inhoud van die map moet kopiëren, behalve 1 bestand, dan zouden velen blijven nadenken, en anderen zouden het noemen rsync, dan met de parameter -Uitsluiten u kunt een X-bestand of map uitsluiten en niet kopiëren. Maar ... wist je dat cp je dit ook toestaat? ... O_O … Ja vrienden, cp heeft zijn eigen "uitsluiten" hehe.

We hebben bijvoorbeeld de map isos met: ubuntu.iso, debian.iso y archlinux.iso :

En het gebeurt dat we naar de andere map willen kopiëren (distributies-deb, die leeg is) het bestand debian.iso y ubuntu.iso, dat wil zeggen, alles behalve archlinux.iso

Hiervoor zouden we een bestand kunnen kopiëren en dan een ander, handmatig, maar het is veel slimmer om de opties te gebruiken die het systeem ons biedt, toch? … 😀… om dit bijvoorbeeld gewoon te doen:

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

En dit is genoeg om ALLES in de isos-directory naar distros-deb te kopiëren, alles behalve archlinux.iso 😉

Maar stel dat we niet alleen die 3 bestanden hebben, maar we hebben ook fedora.iso en chakra.iso ... en we willen hetzelfde doen, dan zou het ook worden uitgesloten van de kopie fedora.iso en chakra.iso, laten we eens kijken hoe het moet:

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

Zoals u kunt zien, kunnen verschillende bestanden of mappen worden uitgesloten, we scheiden ze alleen door een pijp (|) en de kwestie is opgelost 😀

Hiermee bedoel ik niet dat cp voor alles beter is dan rsync ... maar beide zijn uitstekende tools, bijvoorbeeld ... wist je de parameter -u de cp? ... hehe, zeker niet 😉

Nou, niets meer toe te voegen ... is dit een interessante tip? 😀

groeten


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   Josh zei

    Ik kende deze methode niet, je leert altijd iets nieuws.
    Uitstekende tip, bedankt.

    1.    KZKG ^ Gaara zei

      Bedankt

  2.   krokus zei

    De tip is erg goed, ik wist het niet! Het blijft alleen om uit te leggen aan Arch- en Fedora-gebruikers waarom je hun iso's hebt uitgesloten

    1.    KZKG ^ Gaara zei

      JAJAJAJAJAJA Ik heb de Arch en Fedora ISO's niet geplaatst omdat het voorbeeld probeerde alleen Deb-distributies te kopiëren ... HAHAHAJAJA.

  3.   hexaborg zei

    Hier moeten we een paar punten naar voren brengen. Een daarvan is dat dit alleen werkt als de extglob-optie van de bash is ingeschakeld. Als dit niet het geval is, wordt het geactiveerd met dit commando:

    shopt -s extglob

    Het kan in de .bashrc worden geplaatst om het altijd geactiveerd te hebben.

    Het andere punt is dat deze truc geen optie is van het cp-commando, maar het werkt op het bash-niveau. Wat betekent dat het met elk commando kan worden gebruikt. Niet alleen met cp. U kunt de test doen door te schrijven:

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

    Anders is het een erg handige truc. Samen met de -u optie voor cp, die ik ook van tijd tot tijd handig vind.

    1.    Daniël Rojas zei

      Zeker, het is een reguliere expressie

      1.    hexaborg zei

        Het is eigenlijk een uitgebreid patroon. Een reguliere expressie is iets anders, maar het ziet er zo uit. 🙂

    2.    KZKG ^ Gaara zei

      Ja, de -u in cp is echt interessant. Ik geef toe dat ik een grote fan ben van rsync ... maar ik weet het niet, ik heb een gehechtheid aan arme cp hahaha.

      Over het activeren van shopt wist ik niet, ik ging ervan uit dat dit automatisch werkte, bedankt voor de tip.

      En ja, ik vermoedde dat het meer met Bash te maken had dan met cp, maar ik had nog niet geprobeerd een rm of een kat of iets dergelijks te doen :)

      Bedankt voor de reactie, echt waar 😀

      1.    hexaborg zei

        Het is me een genoegen mijn steentje bij te dragen. 🙂

        1.    KZKG ^ Gaara zei

          Sterker nog, ik ben altijd al geïnteresseerd geweest in het leren over regex ... word je opgewonden en schrijf je er een nieuwkomer over? 😀

          1.    hexaborg zei

            LOL!! Je hebt me al. 🙂 Met hoe blij ik was zonder commentaar te geven ... 🙂

            De waarheid is dat hij me belt. 🙂 Maar ik moet er nog even over nadenken. Het lijkt moeilijk uit te leggen.

            1.    KZKG ^ Gaara zei

              hahahahaha niets, maak je geen zorgen, je blijft maar zeggen dat je nog steeds leert ahahahaha, het belangrijkste is om te delen 😀


  4.   tufadorijn zei

    Zeer goede tip Je gaat nooit naar bed zonder iets nieuws te hebben geleerd.

    1.    KZKG ^ Gaara zei

      Precies, en het beste van alles is dat ik veel leer met de opmerkingen die je achterlaat op de berichten, ik hou ervan om elke dag vreemde dingen te leren HAHAHA.

  5.   giskard zei

    Goede truc. Ik kende hem niet 🙂

    1.    KZKG ^ Gaara zei

      Een plezier 😉

  6.   @Jlcmux zei

    Maar als u isos plaatst, bedoelt u debian.iso ubuntu.iso /! (Enz. Enz.)? Nee

  7.   Heber zei

    Het bleek inderdaad een heel interessante tip te zijn. Niet alleen voor het artikel zelf, maar ook voor de meerwaarde van de commentaren.
    Mooie gemeenschap van <º Linux

  8.   MARTHA VAN DE BRON zei

    Uw hulp heeft mij niet geholpen, u moet een voorbeeld geven, zodat de studenten uw prachtige techniek beter kunnen begrijpen.
    Bedankt dat je de tijd hebt genomen, ik zal deze pagina altijd in mijn hart onthouden

  9.   felipe016 zei

    U zegt dat u mappen weglaat, maar in de voorbeelden laat u alleen bestanden weg, weet u hoe u een bepaalde map weglaat? Vriendelijke groeten.