Kako kopirati in izključiti notranje datoteke ali imenike (enakovredno rsync –exclude)

Če bi vas prosil, da omenite ukaz za kopiranje mape na drugo mesto, bi to omenili skoraj vsi cp.

Zdaj, če vam povem, da morate poleg tega kopirati vso vsebino te mape, razen ene datoteke, bi mnogi ostali razmišljali, drugi pa bi omenili rsync, nato s parametrom –Izključi datoteko ali mapo X lahko izključite in je ne kopirate. Ampak ... ali ste vedeli, da vam to omogoča tudi cp? ... O_o ... ja prijatelji, cp ima svoj "izključi" hehe.

Na primer, imamo mapo isos ki vsebuje: ubuntu.iso, debian.iso y archlinux.iso :

In zgodi se, da želimo kopirati v drugo mapo (distros-deb, ki je prazen) datoteko debian.iso y ubuntu.iso, torej vsi razen archlinux.iso

Za to bi lahko kopirali datoteko in nato drugo, ročno, vendar je veliko bolj pametno uporabljati možnosti, ki nam jih ponuja sistem, kajne? … 😀… na primer, da to storite samo:

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

In to je dovolj, da VSE, kar je v imeniku isos, kopirate v distros-deb, vse razen archlinux.iso 😉

A predpostavimo, da nimamo le teh 3 datotek, ampak imamo tudi fedora.iso in chakra.iso ... in želimo to storiti enako, izključena bi bila tudi iz kopije fedora.iso in chakra.iso, poglejmo, kako to storiti:

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

Kot lahko vidite, je mogoče izključiti več datotek ali map, ločimo jih le s cevjo (|) in zadeva rešena 😀

S tem ne mislim, da je cp za vse boljši kot rsync ... ampak oba sta na primer izvrstna orodja ... ali ste poznali parameter -u de cp? ... hehe, zagotovo ne 😉

No, nič več za dodati ... je to zanimiv namig? 😀

pozdrav


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   Josh je dejal

    Te metode nisem poznal, vedno se naučiš kaj novega.
    Odličen namig, hvala.

    1.    KZKG ^ Gaara je dejal

      Hvala

  2.   kroto je dejal

    Nasvet je zelo dober, nisem ga vedel! Uporabnikom Archa in Fedore je treba le še razložiti, zakaj ste izključili njihove iso hehe

    1.    KZKG ^ Gaara je dejal

      JAJAJAJAJAJA Nisem postavil ISO-jev Arch in Fedora, ker je primer poskušal kopirati samo distribucije Deb ... HAHAHAHAHA.

  3.   Hexborg je dejal

    Tu moramo izpostaviti nekaj točk. Eno je, da to deluje le, če je omogočena možnost extglob basha. Če ni, se aktivira s tem ukazom:

    shopt -s extglob

    Lahko ga vstavite v .bashrc, da ga vedno aktivirate.

    Druga stvar je, da ta trik ni možnost ukaza cp, ampak deluje na ravni bash. Kar pomeni, da se lahko uporablja s katerim koli ukazom. Ne samo s cp. Test lahko naredite tako, da napišete:

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

    Sicer je zelo koristen trik. Skupaj z možnostjo -u za cp, ki se mi občasno zdi tudi koristna.

    1.    Daniel Rojas je dejal

      Seveda, to je običajen izraz

      1.    Hexborg je dejal

        Pravzaprav gre za razširjen vzorec. Regulalen izraz je nekaj drugega, vendar je videti tako. 🙂

    2.    KZKG ^ Gaara je dejal

      Ja, -u v cp je res zanimiv. Priznam, da sem velik oboževalec rsynca ... ampak ne vem, imam navezanost na slabega cp-ja hahaha.

      O aktiviranju shopt nisem vedel, domneval sem, da je to delovalo samodejno, hvala za namig.

      In ja, sumil sem, da ima to bolj opraviti z Bashom kot s cp, vendar še nisem poskusil narediti rm-ja ali mačke ali česa podobnega :)

      Hvala za komentar, res 😀

      1.    Hexborg je dejal

        V veselje mi je narediti svoje. 🙂

        1.    KZKG ^ Gaara je dejal

          Pravzaprav me je vedno zanimalo spoznavanje regularnih izrazov ... se navdušite in objavite novinec o tem? 😀

          1.    Hexborg je dejal

            LOL !! Me že imaš. 🙂 S tem, kako sem bil vesel brez komentarja ... 🙂

            No, resnica je, da me kliče. 🙂 Toda še vedno moram malo razmisliti o tem. Zdi se težko razložljivo.

            1.    KZKG ^ Gaara je dejal

              hahahahaha nič ne skrbi, kar naprej komentiraš, da se še vedno naučiš ahahahaha, pomembno je deliti 😀


  4.   tufadorin je dejal

    Zelo dober nasvet Nikoli ne boste šli spat, ne da bi se naučili česa novega.

    1.    KZKG ^ Gaara je dejal

      Točno in najboljše od vsega je, da se ob komentarjih, ki jih pustite na objavah, veliko naučim, rad se vsak dan učim nenavadnih stvari HAHAHA.

  5.   giskard je dejal

    Dober trik. Nisem ga poznal 🙂

    1.    KZKG ^ Gaara je dejal

      V veselje 😉

  6.   Магчыма, кабель playstation XNUMX, які вы шукаеце, скончыўся. je dejal

    Ko pa postavite izos, mislite postaviti debian.iso ubuntu.iso /! (Itd itd.)? št

  7.   Heber je dejal

    Izkazalo se je zelo zanimiv namig. Ne samo zaradi samega članka, ampak tudi zaradi dodane vrednosti komentarjev.
    Čudovita skupnost <º Linuxa

  8.   MARTA OD VODNJAKA je dejal

    Vaša pomoč mi ni koristila, navedite primer, da bodo učenci bolje razumeli vašo čudovito tehniko.
    Hvala, ker ste si vzeli čas, te strani si bom vedno zapomnil v srcu

  9.   felipe016 je dejal

    Pravite, da izpustite imenike, vendar v primerih izpustite samo datoteke, ali veste, kako izpustiti določen imenik? S spoštovanjem.