Αν σας ζητούσα να αναφέρετε μια εντολή για να αντιγράψετε ένα φάκελο σε άλλη τοποθεσία, σχεδόν όλοι θα το αναφέρουν cp.
Τώρα, αν σας πω ότι, επιπλέον, πρέπει να αντιγράψετε όλα τα περιεχόμενα αυτού του φακέλου εκτός από 1 αρχείο, πολλοί θα σκέφτονταν και άλλοι θα αναφέρουν rsync, στη συνέχεια με την παράμετρο -Αποκλείω μπορείτε να εξαιρέσετε το αρχείο X ή το φάκελο και να μην το αντιγράψετε. Αλλά ... ξέρατε ότι το cp σας επιτρέπει επίσης να το κάνετε αυτό; ... O_O … Ναι φίλοι, cp έχει τη δική του "εξαίρεση" hehe.
Για παράδειγμα, έχουμε τον φάκελο isos που περιέχει: ubuntu.iso, debian.iso y archlinux.iso :
Και συμβαίνει ότι θέλουμε να αντιγράψουμε στον άλλο φάκελο (διανομή-deb, το οποίο είναι κενό) το αρχείο debian.iso y ubuntu.iso, δηλαδή, εκτός από το archlinux.iso
Για αυτό θα μπορούσαμε να αντιγράψουμε ένα αρχείο και μετά ένα άλλο, χειροκίνητα, αλλά είναι πολύ πιο έξυπνο να χρησιμοποιήσουμε τις επιλογές που μας προσφέρει το σύστημα, σωστά; … 😀… για παράδειγμα, για να το κάνετε αυτό:
cp isos/!(archlinux.iso) distros-deb/
Και αυτό αρκεί για να αντιγράψετε ΟΛΑ τα περιεχόμενα στον κατάλογο isos στο distros-deb, όλα εκτός από το archlinux.iso 😉
Ας υποθέσουμε ότι δεν έχουμε μόνο αυτά τα 3 αρχεία, αλλά έχουμε επίσης τα feedora.iso και chakra.iso ... και θέλουμε να κάνουμε το ίδιο, θα εξαιρέθηκε επίσης από τα αντίγραφα fedora.iso και chakra.iso, ας δούμε πώς να το κάνουμε:
cp isos/!(archlinux.iso|fedora.iso|chakra.iso) distros-deb/
Όπως μπορείτε να δείτε, πολλά αρχεία ή φάκελοι μπορούν να αποκλειστούν, τα χωρίζουμε μόνο με σωλήνα (|) και το θέμα επιλύθηκε 😀
Με αυτό δεν εννοώ ότι το cp είναι καλύτερο για τα πάντα από το rsync ... αλλά, και τα δύο είναι εξαιρετικά εργαλεία, για παράδειγμα ... ξέρατε την παράμετρο -u de cp; ... hehe, σίγουρα όχι 😉
Λοιπόν, τίποτα άλλο να προσθέσω ... είναι μια ενδιαφέρουσα συμβουλή; 😀
αφορά
Δεν ήξερα αυτήν τη μέθοδο, μαθαίνεις πάντα κάτι νέο.
Εξαιρετική συμβουλή, ευχαριστώ.
Σας ευχαριστώ
Η συμβουλή είναι πολύ καλή, δεν το ήξερα! Απομένει μόνο να εξηγήσουμε στους χρήστες του Arch και του Fedora γιατί εξαιρέσατε το iso's hehe
JAJAJAJAJAJA Δεν έβαλα τα ISO Arch και Fedora επειδή το παράδειγμα προσπάθησε να αντιγράψει μόνο τις διανομές Deb… HAHAHAHAHA.
Εδώ πρέπει να κάνουμε μερικά σημεία. Το ένα είναι ότι αυτό λειτουργεί μόνο εάν είναι ενεργοποιημένη η επιλογή extglob του bash. Εάν δεν είναι, ενεργοποιείται με αυτήν την εντολή:
shopt -s extglob
Μπορεί να τοποθετηθεί στο .bashrc για να το ενεργοποιήσετε πάντα.
Το άλλο σημείο είναι ότι αυτό το τέχνασμα δεν είναι επιλογή της εντολής cp, αλλά λειτουργεί σε επίπεδο bash. Αυτό σημαίνει ότι μπορεί να χρησιμοποιηθεί με οποιαδήποτε εντολή. Όχι μόνο με cp. Μπορείτε να κάνετε το τεστ γράφοντας:
echo Files: isos /! (archlinux.iso | fedora.iso | chakra.iso)
Διαφορετικά είναι ένα πολύ χρήσιμο κόλπο. Μαζί με την επιλογή -u στο cp, το οποίο βρίσκω επίσης χρήσιμο από καιρό σε καιρό.
Σίγουρα, είναι μια κανονική έκφραση
Είναι στην πραγματικότητα ένα εκτεταμένο σχέδιο. Μια κανονική έκφραση είναι κάτι άλλο, αλλά μοιάζει με αυτό. 🙂
Ναι, το -u in cp είναι πραγματικά ενδιαφέρον. Παραδέχομαι ότι είμαι οπαδός του rsync ... αλλά δεν ξέρω, έχω μια προσκόλληση στον φτωχό cp, χαχα.
Σχετικά με την ενεργοποίηση του shopt, δεν ήξερα, υποθέτω ότι αυτό λειτούργησε αυτόματα, ευχαριστώ για την συμβουλή.
Και ναι, υποψιάστηκα ότι είχε μεγαλύτερη σχέση με τον Bash από το cp, αλλά δεν είχα δοκιμάσει να φτιάξω ένα rm ή μια γάτα ή κάτι τέτοιο ακόμα :)
Ευχαριστώ για το σχόλιο, πραγματικά κάνω 😀
Είναι χαρά μου να κάνω το κομμάτι μου. 🙂
Στην πραγματικότητα, πάντα με ενδιέφερε να μάθω για το regex ... ενθουσιάζετε και κάνετε μια νέα ανάρτηση για αυτό; 😀
ΧΑΧΑΧΑ!! Έχεις ήδη. 🙂 Με πόσο χαρούμενος ήμουν χωρίς να σχολιάσω… 🙂
Λοιπόν, η αλήθεια είναι ότι με καλεί. 🙂 Αλλά πρέπει να το σκεφτώ για λίγο. Φαίνεται δύσκολο να εξηγηθεί.
hahahahaha τίποτα, μην ανησυχείτε, συνεχίζετε να σχολιάζετε ότι εξακολουθείτε να μαθαίνετε ahahahaha, το σημαντικό είναι να μοιραστείτε
Πολύ καλή συμβουλή Δεν θα πάτε ποτέ στο κρεβάτι χωρίς να μάθετε κάτι νέο.
Ακριβώς, και το καλύτερο από όλα είναι ότι μαθαίνω πολλά με τα σχόλια που αφήνετε στις δημοσιεύσεις, μου αρέσει να μαθαίνω περίεργα πράγματα κάθε μέρα HAHAHA.
Καλό κόλπο. Δεν τον ήξερα 🙂
Μια ευχαρίστηση 😉
Αλλά όταν βάζεις isos εννοείς να βάλεις το debian.iso ubuntu.iso /! (Κ.λπ.); όχι
Πράγματι, αποδείχθηκε μια πολύ ενδιαφέρουσα συμβουλή. Όχι μόνο λόγω του ίδιου του άρθρου, αλλά και λόγω της προστιθέμενης αξίας των σχολίων.
Όμορφη κοινότητα <º Linux
Η βοήθειά σας δεν μου είχε χρησιμεύσει, πρέπει να δώσετε ένα παράδειγμα, έτσι ώστε οι μαθητές να καταλάβουν καλύτερα την υπέροχη τεχνική σας
Σας ευχαριστώ που αφιερώσατε χρόνο, θα θυμάμαι πάντα αυτή τη σελίδα στην καρδιά μου
λέτε ότι παραλείπετε καταλόγους, ωστόσο στα παραδείγματα παραλείπετε μόνο αρχεία, ξέρετε πώς να παραλείψετε έναν συγκεκριμένο κατάλογο; Χαιρετισμοί.