Cum să copiați și să excludeți fișiere sau directoare CP (echivalent cu rsync –exclude)

Dacă v-aș cere să menționați o comandă pentru a copia un folder într-o altă locație, aproape toată lumea ar menționa cp.

Acum, dacă vă spun că, în plus, trebuie să copiați tot conținutul acelui folder, cu excepția unui fișier, mulți ar rămâne gândiți, iar alții ar menționa rsync, apoi cu parametrul -Exclude puteți exclude fișierul sau folderul X și nu îl copiați. Dar ... știați că și cp vă permite să faceți acest lucru? ... O_O ... Da prieteni, cp are propriul său „exclude” hehe.

De exemplu, avem dosarul isos conținând: ubuntu.iso, debian.iso y archlinux.iso :

Și se întâmplă să vrem să copiem în celălalt folder (distros-deb, care este gol) fișierul debian.iso y ubuntu.iso, adică toate cu excepția archlinux.iso

Pentru aceasta am putea copia un fișier și apoi altul, manual, dar este mult mai inteligent să folosim opțiunile pe care ni le oferă sistemul, nu? ... 😀 ... de exemplu, pentru a face acest lucru doar:

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

Și acest lucru este suficient pentru a copia TOTUL conținut în directorul isos în distros-deb, totul cu excepția archlinux.iso 😉

Dar să presupunem că nu numai că avem acele 3 fișiere, dar avem și fedora.iso și chakra.iso ... și vrem să facem la fel, ar fi exclus și din copiile fedora.iso și chakra.iso, să vedem cum să o facem:

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

După cum puteți vedea, mai multe fișiere sau foldere pot fi excluse, le separăm doar printr-o conductă (|) și problema rezolvată 😀

Prin aceasta nu vreau să spun că cp este mai bun pentru orice decât rsync ... dar, ambele sunt instrumente excelente, de exemplu ... știați parametrul -u de cp? ... hehe, sigur nu 😉

Ei bine, nimic mai mult de adăugat ... este acesta un sfat interesant? 😀

În ceea ce priveşte


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Tachina el a spus

    Nu știam această metodă, întotdeauna înveți ceva nou.
    Sfat excelent, mulțumesc.

    1.    KZKG ^ Gaara el a spus

      Mulțumesc

  2.   crotus el a spus

    Sfatul este foarte bun, nu l-am știut! Rămâne doar să le explicați utilizatorilor Arch și Fedora de ce le-ați exclus izo hehe

    1.    KZKG ^ Gaara el a spus

      JAJAJAJAJAJA Nu am pus ISO-urile Arch și Fedora pentru că exemplul a încercat să copieze numai Deb distros ... HAHAHAJAJA.

  3.   hexborg el a spus

    Aici trebuie să facem câteva puncte. Una este că acest lucru funcționează numai dacă opțiunea extglob a bash-ului este activată. Dacă nu este, se activează cu această comandă:

    shopt -s extglob

    Poate fi pus în .bashrc pentru a-l avea întotdeauna activat.

    Celălalt punct este că acest truc nu este o opțiune a comenzii cp, dar funcționează la nivelul bash. Ceea ce înseamnă că poate fi folosit cu orice comandă. Nu numai cu cp. Puteți face testul scriind:

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

    Altfel este un truc foarte util. Împreună cu opțiunea -u la cp, pe care o găsesc utilă și din când în când.

    1.    Daniel Rojas el a spus

      Sigur, este o expresie regulată

      1.    hexborg el a spus

        Este de fapt un model extins. O expresie regulată este altceva, dar arată așa. 🙂

    2.    KZKG ^ Gaara el a spus

      Da, -u în cp este foarte interesant. Recunosc că sunt un mare fan al rsync ... dar nu știu, am un atașament față de bietul cp hahaha.

      Despre activarea magazinului, nu știam, am presupus că acest lucru a funcționat automat, mulțumesc pentru pont.

      Și da, bănuiam că are mai mult de-a face cu Bash decât cp, dar nu încercasem încă să fac un rm sau o pisică sau ceva de genul asta :)

      Mulțumesc pentru comentariu, chiar do

      1.    hexborg el a spus

        Este o plăcere să-mi fac păcatul. 🙂

        1.    KZKG ^ Gaara el a spus

          De fapt, am fost mereu interesat să aflu despre expresii obișnuite ... te entuziasmezi și faci o postare newbie despre asta? 😀

          1.    hexborg el a spus

            LAUGH OUT LOUD!! Mă ai deja. 🙂 Cu cât de fericit am fost fără comentarii ... 🙂

            Ei bine, adevărul este că mă sună. 🙂 Dar trebuie totuși să mă gândesc puțin la asta. Pare greu de explicat.

            1.    KZKG ^ Gaara el a spus

              hahahahaha nimic nu vă faceți griji, continuați să comentați că învățați în continuare ahahahaha, important este să împărtășiți 😀


  4.   tufadorin el a spus

    Sfat foarte bun Nu te vei culca niciodată fără să înveți ceva nou.

    1.    KZKG ^ Gaara el a spus

      Exact și cel mai bun dintre toate este că învăț multe lucruri cu comentariile pe care le lași pe postări, îmi place să învăț lucruri ciudate în fiecare zi HAHAHA.

  5.   giskard el a spus

    Bun truc. Nu l-am cunoscut 🙂

    1.    KZKG ^ Gaara el a spus

      O plăcere 😉

  6.   @Jlcmux el a spus

    Dar când pui isos vrei să pui debian.iso ubuntu.iso /! (Etc etc)? Nu

  7.   Heber el a spus

    Într-adevăr, sa dovedit a fi un sfat foarte interesant. Nu numai datorită articolului în sine, ci și datorită valorii adăugate a comentariilor.
    Frumoasă comunitate de <º Linux

  8.   MARTHA FÂNTÂNIEI el a spus

    Ajutorul tău nu mi-a fost de niciun folos, ar trebui să dai un exemplu, astfel încât elevii să poată înțelege mai bine tehnica ta magnifică.
    Îți mulțumesc că ți-ai făcut timp, îmi voi aminti întotdeauna această pagină din inima mea

  9.   felipe016 el a spus

    spuneți că omiteți directoare, cu toate acestea, în exemplele săriți doar fișiere, știți cum să omiteți un anumit director? Salutari.