Hvordan kopiere og ekskludere interne filer eller kataloger (tilsvarer rsync – ekskludere)

Hvis jeg skulle be deg om å nevne en kommando for å kopiere en mappe til et annet sted, ville nesten alle nevne det cp.

Nå, hvis jeg forteller deg at i tillegg må du kopiere alt innholdet i den mappen unntatt en fil, mange vil bli igjen å tenke, og andre vil nevne rsync, deretter med parameteren -Utelukke du kan ekskludere X-fil eller mappe og ikke kopiere den. Men ... visste du at cp også lar deg gjøre dette? ... O_O ... Ja venner, cp har sitt eget "ekskluder" hehe.

For eksempel har vi mappen isos Det er som inneholder: ubuntu.iso, debian.iso y archlinux.iso :

Og det hender at vi vil kopiere til den andre mappen (distros-deb, som er tom) filen debian.iso y ubuntu.isoaltså unntatt archlinux.iso

For dette kunne vi kopiere en fil og deretter en annen manuelt, men det er mye smartere å bruke alternativene som systemet tilbyr oss, ikke sant? ... 😀 ... for eksempel å gjøre dette bare:

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

Og dette er nok til å kopiere ALT som finnes i isos-katalogen til distros-deb, alt unntatt archlinux.iso 😉

Men anta at vi ikke bare har de tre filene, men vi har også fedora.iso og chakra.iso ... og vi vil gjøre det samme, det vil også være ekskludert fra kopien fedora.iso og chakra.iso, la oss se hvordan du gjør det:

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

Som du kan se, kan flere filer eller mapper ekskluderes, vi skiller dem bare med et rør (|) og saken løst 😀

Med dette mener jeg ikke at cp er bedre for alt enn rsync ... men begge er gode verktøy, for eksempel ... visste du parameteren -u de cp? ... hehe, absolutt ikke 😉

Vel, ingenting mer å legge til ... er dette et interessant tips? 😀

Hilsen


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   Josh sa

    Jeg kjente ikke denne metoden, du lærer alltid noe nytt.
    Utmerket tips, takk.

    1.    KZKG ^ Gaara sa

      Takk

  2.   crotus sa

    Tips er veldig bra, jeg visste ikke det! Det gjenstår bare å forklare brukere av Arch og Fedora hvorfor du ekskluderte deres iso hehe

    1.    KZKG ^ Gaara sa

      JAJAJAJAJAJA Jeg satte ikke Arch og Fedora ISO-er fordi eksemplet bare prøvde å kopiere Deb distros ... HAHAHAJAJA.

  3.   hexborg sa

    Her må vi komme med et par poeng. Den ene er at dette bare fungerer hvis extglob-alternativet til bash er aktivert. Hvis det ikke er det, aktiveres det med denne kommandoen:

    shopt -s extglob

    Det kan legges i .bashrc for alltid å ha den aktivert.

    Det andre poenget er at dette trikset ikke er et alternativ for cp-kommandoen, men det fungerer på bash-nivå. Noe som betyr at den kan brukes med hvilken som helst kommando. Ikke bare med cp. Du kan gjøre testen ved å skrive:

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

    Ellers er det et veldig nyttig triks. Sammen med -u-alternativet til cp, som jeg også synes er nyttig fra tid til annen.

    1.    Daniel Rojas sa

      Visst, det er et vanlig uttrykk

      1.    hexborg sa

        Det er faktisk et utvidet mønster. Et vanlig uttrykk er noe annet, men det ser ut som det. 🙂

    2.    KZKG ^ Gaara sa

      Ja, -u i cp er veldig interessant. Jeg innrømmer at jeg er en stor fan av rsync ... men jeg vet ikke, jeg har et vedlegg til dårlig cp hahaha.

      Om å aktivere shopt visste jeg ikke, jeg antok at dette fungerte automatisk, takk for tipset.

      Og ja, jeg mistenkte at det hadde mer å gjøre med Bash enn cp, men jeg hadde ikke prøvd å gjøre en rm eller en katt eller noe sånt ennå :)

      Takk for kommentaren, det gjør jeg virkelig 😀

      1.    hexborg sa

        Det er en glede å gjøre mitt. 🙂

        1.    KZKG ^ Gaara sa

          Faktisk har jeg alltid vært interessert i å lære om vanlige uttrykk ... blir du spent og gjør et nybegynnerinnlegg om det? 😀

          1.    hexborg sa

            LOL !! Du har meg allerede. Med hvor lykkelig jeg var uten kommentarer ... 🙂

            Sannheten er at han ringer til meg. 🙂 Men jeg må fortsatt tenke litt på det. Det virker vanskelig å forklare.

            1.    KZKG ^ Gaara sa

              hahahahaha ingenting, ikke bekymre deg, du fortsetter å kommentere at du fremdeles lærer ahahahaha, det viktigste er å dele 😀


  4.   tufadorin sa

    Veldig bra tips Du vil aldri legge deg uten å lære noe nytt.

    1.    KZKG ^ Gaara sa

      Akkurat, og det beste av alt er at jeg lærer mye med kommentarene du legger igjen på innleggene, jeg elsker å lære rare ting hver dag HAHAHA.

  5.   giskard sa

    Bra triks. Jeg kjente ham ikke 🙂

    1.    KZKG ^ Gaara sa

      En glede 😉

  6.   @Jlcmux sa

    Men når du setter isos, mener du å sette debian.iso ubuntu.iso /! (Etc etc)? Nei

  7.   Heber sa

    Det viste seg å være et veldig interessant tips. Ikke bare på grunn av selve artikkelen, men også på grunn av merverdien av kommentarene.
    Vakre fellesskap av <º Linux

  8.   MARTHA AV BRØNNEN sa

    Hjelpen din har ikke vært til nytte for meg, du bør gi et eksempel, slik at studentene bedre kan forstå den fantastiske teknikken din.
    Takk for at du tok deg tid, jeg vil alltid huske denne siden i mitt hjerte

  9.   Philip016 sa

    du sier at du hopper over kataloger, men i eksemplene hopper du bare over filer. Vet du hvordan du hopper over en bestemt katalog? Hilsen.