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
Jeg kendte ikke denne metode, du lærer altid noget nyt.
Fremragende tip, tak.
Tak
Tipet er meget godt, jeg vidste det ikke! Det er kun at forklare Arch- og Fedora-brugere, hvorfor du ekskluderede deres iso's hehe
JAJAJAJAJAJA Jeg satte ikke ISO-erne for Arch og Fedora, fordi eksemplet kun forsøgte at kopiere Deb distros ... HAHAHAJAJA.
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.
Sikker på, det er et regelmæssigt udtryk
Det er faktisk et udvidet mønster. Et regelmæssigt udtryk er noget andet, men det ligner det. 🙂
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 😀
Det er en fornøjelse at gøre min bit. 🙂
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? 😀
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.
hahahahaha intet, skal du ikke bekymre dig, du bliver ved med at kommentere, at du stadig lærer ahahahaha, det vigtige er at dele 😀
Meget godt tip Du går aldrig i seng uden at lære noget nyt.
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.
Godt trick. Jeg kendte ham ikke 🙂
En fornøjelse 😉
Men når du lægger isos, mener du at sætte debian.iso ubuntu.iso /! (Etc osv.)? ingen
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
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
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.