Se ti chiedessi di menzionare un comando per copiare una cartella in un'altra posizione, quasi tutti lo menzionerebbero cp.
Ora, se ti dicessi che, inoltre, devi copiare tutto il contenuto di quella cartella tranne 1 file, molti penserebbero, e altri menzionerebbero rsync, quindi con il parametro -Escludere Puoi escludere il file o la cartella X e non copiarlo. Ma ... lo sapevi che cp ti permette anche di fare questo? ... O_O ... Sì amici, cp ha il suo "esclude" hehe.
Ad esempio, abbiamo la cartella iso contenente: ubuntu.iso, debian.iso y archlinux.iso :
E succede che vogliamo copiare nell'altra cartella (distro-deb, che è vuoto) il file debian.iso y ubuntu.iso, cioè tutti tranne archlinux.iso
Per questo potremmo copiare un file e poi un altro, manualmente, ma è molto più intelligente usare le opzioni che il sistema ci offre, giusto? ... 😀 ... ad esempio, per farlo semplicemente:
cp isos/!(archlinux.iso) distros-deb/
E questo è sufficiente per copiare TUTTO quello contenuto nella directory isos in distros-deb, tutto tranne archlinux.iso 😉
Ma supponiamo che non solo abbiamo quei 3 file, ma abbiamo anche fedora.iso e chakra.iso ... e vogliamo fare lo stesso, sarebbe anche escluso dalla copia fedora.iso e chakra.iso, diamo guarda come farlo:
cp isos/!(archlinux.iso|fedora.iso|chakra.iso) distros-deb/
Come puoi vedere, è possibile escludere più file o cartelle, li separiamo solo da una pipe (|) e questione risolta 😀
Con questo non intendo dire che cp sia migliore per tutto che rsync ... ma entrambi sono ottimi strumenti, per esempio ... sapevi il parametro -u de cp? ... hehe, certo che no 😉
Bene, niente altro da aggiungere ... è un suggerimento interessante? 😀
saluti
Non conoscevo questo metodo, impari sempre qualcosa di nuovo.
Suggerimento eccellente, grazie.
Grazie
La punta è molto buona, non lo sapevo! Resta solo da spiegare agli utenti di Arch e Fedora perché hai escluso i loro iso hehe
JAJAJAJAJAJA Non ho messo gli ISO di Arch e Fedora perché l'esempio cercava di copiare solo le distribuzioni Deb… HAHAHAHAHA.
Qui dobbiamo fare un paio di punti. Uno è che funziona solo se l'opzione extglob della bash è abilitata. Se non lo è, si attiva con questo comando:
shopt -s estglob
Può essere messo nel .bashrc per averlo sempre attivato.
L'altro punto è che questo trucco non è un'opzione del comando cp, ma funziona a livello bash. Ciò significa che può essere utilizzato con qualsiasi comando. Non solo con cp. Puoi fare il test scrivendo:
File echo: isos /! (archlinux.iso | fedora.iso | chakra.iso)
Altrimenti è un trucco molto utile. Insieme all'opzione -u di cp, che trovo utile di tanto in tanto.
Certo, è un'espressione regolare
In realtà è uno schema esteso. Un'espressione regolare è qualcos'altro, ma sembra. 🙂
Sì, la -u in cp è davvero interessante. Ammetto di essere un grande fan di rsync ... ma non lo so, ho un attaccamento al povero cp hahaha.
Riguardo all'attivazione di shopt, non lo sapevo, pensavo che funzionasse automaticamente, grazie per il suggerimento.
E sì, sospettavo che avesse più a che fare con Bash che con cp, ma non avevo ancora provato a fare un rm o un gatto o qualcosa del genere :)
Grazie per il commento, davvero 😀
È un piacere fare la mia parte. 🙂
In effetti, sono sempre stato interessato a conoscere le espressioni regolari ... ti ecciti e fai un post per principianti al riguardo? 😀
LOL !! Mi hai già. 🙂 Con quanto ero felice senza commenti ... 🙂
Ebbene, la verità è che mi sta chiamando. 🙂 Ma devo ancora pensarci un po '. Sembra difficile da spiegare.
hahahahaha niente, non preoccuparti, continui a commentare che impari ancora ahahahaha, l'importante è condividere 😀
Suggerimento molto buono Non andrai mai a letto senza imparare qualcosa di nuovo.
Esatto, e la cosa migliore è che imparo molto dai commenti che lasci sui post, adoro imparare cose strane ogni giorno HAHAHA.
Buon trucco. Non lo conoscevo 🙂
Un piacere 😉
Ma quando metti isos intendi mettere debian.iso ubuntu.iso /! (Etc etc)? no
In effetti si è rivelato un suggerimento molto interessante. Non solo per l'articolo in sé, ma anche per il valore aggiunto dei commenti.
Bella comunità di <º Linux
Il tuo aiuto non mi è stato di alcuna utilità, dovresti fare un esempio, così che gli studenti possano capire meglio la tua magnifica tecnica.
Grazie per aver dedicato del tempo, ricorderò sempre questa pagina nel mio cuore
dici che salti le directory, tuttavia negli esempi salti solo i file, sai come saltare una directory particolare? Saluti.