Sådan kopieres og udelukkes interne filer eller mapper (svarer til rsync – ekskluder)

Hvis jeg bad dig om at nævne en kommando til at kopiere en mappe til et andet sted, ville næsten alle nævne cp.

Hvis jeg fortæller dig, at du derudover skal kopiere alt indholdet af den mappe undtagen 1 fil, vil mange blive overladt til at tænke, og andre vil nævne rsync, derefter med parameteren -Udelukke du kan ekskludere X-fil eller mappe og ikke kopiere den. Men ... vidste du, at cp også giver dig mulighed for at gøre dette? ... O_O ... Ja venner, cp har sin egen "ekskluder" hehe.

For eksempel har vi mappen isos indeholdende: ubuntu.iso, debian.iso y archlinux.iso :

Og det sker, at vi vil kopiere til den anden mappe (distros-deb, som er tom) filen debian.iso y ubuntu.iso, det vil sige alle undtagen archlinux.iso

Til dette kunne vi kopiere en fil og derefter en anden manuelt, men det er meget mere intelligent at bruge de muligheder, som systemet tilbyder os, ikke? … 😀… for eksempel for at gøre dette bare:

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

Og dette er nok til at kopiere ALT indeholdt i isos-biblioteket til distros-deb, alt undtagen archlinux.iso 😉

Men antag, at vi ikke kun har disse 3 filer, men vi har også fedora.iso og chakra.iso ... og vi ønsker at gøre det samme, det ville også være udelukket fra kopien fedora.iso og chakra.iso, lad os se, hvordan man gør det:

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

Som du kan se, kan flere filer eller mapper ekskluderes, vi adskiller dem kun med et rør (|) og sagen løst 😀

Med dette mener jeg ikke, at cp er bedre for alt end rsync ... men begge er fremragende værktøjer, for eksempel ... vidste du parameteren -u de cp? ... hehe, bestemt ikke 😉

Nå, ikke mere at tilføje ... er dette et interessant tip? 😀

hilsen


20 kommentarer, lad dine

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   Josh sagde han

    Jeg kendte ikke denne metode, du lærer altid noget nyt.
    Fremragende tip, tak.

    1.    KZKG ^ Gaara sagde han

      Tak

  2.   crotus sagde han

    Tipet er meget godt, jeg vidste det ikke! Det er kun at forklare Arch- og Fedora-brugere, hvorfor du ekskluderede deres iso's hehe

    1.    KZKG ^ Gaara sagde han

      JAJAJAJAJAJA Jeg satte ikke ISO-erne for Arch og Fedora, fordi eksemplet kun forsøgte at kopiere Deb distros ... HAHAHAJAJA.

  3.   hexborg sagde han

    Her skal vi komme med et par punkter. Den ene er, at dette kun virker, hvis extglob-indstillingen til bash er aktiveret. Hvis det ikke er tilfældet, aktiveres det med denne kommando:

    shopt -s extglob

    Det kan sættes i .bashrc for altid at have det aktiveret.

    Det andet punkt er, at dette trick ikke er en mulighed for cp-kommandoen, men det fungerer på bash-niveau. Hvilket betyder, at det kan bruges med enhver kommando. Ikke kun med cp. Du kan udføre testen ved at skrive:

    ekko filer: isos /! (archlinux.iso | fedora.iso | chakra.iso)

    Ellers er det et meget nyttigt trick. Sammen med -u mulighed for at cp, som jeg også finder nyttigt fra tid til anden.

    1.    Daniel Rojas sagde han

      Sikker på, det er et regelmæssigt udtryk

      1.    hexborg sagde han

        Det er faktisk et udvidet mønster. Et regelmæssigt udtryk er noget andet, men det ligner det. 🙂

    2.    KZKG ^ Gaara sagde han

      Ja, -u i cp er virkelig interessant. Jeg indrømmer, at jeg er en stor fan af rsync ... men jeg ved det ikke, jeg har en tilknytning til dårlig cp hahaha.

      Om at aktivere shopt vidste jeg ikke, jeg antog, at dette fungerede automatisk, tak for tipet.

      Og ja, jeg mistænkte, at det havde mere at gøre med Bash end cp, men jeg havde ikke prøvet at lave en rm eller en kat eller noget lignende endnu :)

      Tak for kommentaren, det gør jeg virkelig 😀

      1.    hexborg sagde han

        Det er en fornøjelse at gøre min bit. 🙂

        1.    KZKG ^ Gaara sagde han

          Faktisk har jeg altid været interesseret i at lære om regelmæssige udtryk ... bliver du begejstret og skriver et nybegynderindlæg om det? 😀

          1.    hexborg sagde han

            LOL !! Du har mig allerede. 🙂 Med hvor glad jeg var uden at kommentere ... 🙂

            Sandheden er, at han ringer til mig. 🙂 Men jeg skal stadig tænke lidt over det. Det virker vanskeligt at forklare.

            1.    KZKG ^ Gaara sagde han

              hahahahaha intet, skal du ikke bekymre dig, du bliver ved med at kommentere, at du stadig lærer ahahahaha, det vigtige er at dele 😀


  4.   tufadorin sagde han

    Meget godt tip Du går aldrig i seng uden at lære noget nyt.

    1.    KZKG ^ Gaara sagde han

      Præcis, og det bedste af alt er, at jeg lærer meget med de kommentarer, du efterlader på indlæggene, jeg elsker at lære mærkelige ting hver dag HAHAHA.

  5.   giskard sagde han

    Godt trick. Jeg kendte ham ikke 🙂

    1.    KZKG ^ Gaara sagde han

      En fornøjelse 😉

  6.   @Jlcmux sagde han

    Men når du lægger isos, mener du at sætte debian.iso ubuntu.iso /! (Etc osv.)? ingen

  7.   Heber sagde han

    Faktisk viste det sig at være et meget interessant tip. Ikke kun på grund af selve artiklen, men også på grund af merværdien af ​​kommentarerne.
    Smukt samfund af <º Linux

  8.   MARTHA AF BRØNDEN sagde han

    Din hjælp har ikke været til nogen nytte for mig, du skal give et eksempel, så de studerende bedre kan forstå din storslåede teknik.
    Tak fordi du tog dig tid, jeg vil altid huske denne side i mit hjerte

  9.   felipe016 sagde han

    du siger, at du springer kataloger over, men i eksemplerne springer du kun over filer. Ved du, hvordan du springer et bestemt bibliotek over? Hilsen.