Πώς να αντιγράψετε ένα αρχείο σε πολλούς καταλόγους στο linux με μία μόνο εντολή

Linux

Η αντιγραφή ενός αρχείου είναι απολύτως εύκολη υπόθεση σε κάθε σύγχρονο λειτουργικό σύστημα, συμπεριλαμβανομένου του Linux. Ακριβώς όπως τα Windows και τα Mac, μπορείτε να αντιγράψετε ένα αρχείο εύκολα από την εντολή GUI κάνοντας δεξί κλικ στο αρχείο και επιλέγοντας την επιλογή αντιγραφής.

Όμως, τι γίνεται αν θέλετε να αντιγράψετε ένα αρχείο σε πολλούς καταλόγους με μία μόνο εντολή. Αυτό μπορείτε να το κάνετε μόνο χρησιμοποιώντας τη γραμμή εντολών.

Κανονικά, θα χρησιμοποιούσαμε την εντολή cp για να αντιγράψουμε ένα αρχείο στο Linux. Αλλά, αυτή η εντολή μπορεί να χρησιμοποιηθεί μόνο για την αντιγραφή ενός αρχείου σε έναν συγκεκριμένο κατάλογο. Αν σκέφτεστε να αντιγράψετε ένα αρχείο σε περισσότερους από έναν προορισμούς, θα πρέπει να αναζητήσετε μια άλλη εναλλακτική λύση.

Ευτυχώς, το Linux έρχεται με τόσες πολλές εντολές. Όταν εξερευνούμε βαθύτερα μια εντολή, μπορούμε να κάνουμε πολλά πράγματα χρησιμοποιώντας την. Σε αυτή την περίπτωση, θα μιλήσουμε για την εντολή “echo”.

Η εντολή αυτή χρησιμοποιείται βασικά για να γράψετε στην οθόνη. Αλλά, μπορούμε επίσης να χρησιμοποιήσουμε αυτή την εντολή για να αντιγράψουμε ένα αρχείο με πρόσθετες επιλογές. Πριν εκτελέσετε την εντολή, είναι καλύτερα να κατανοήσετε πώς λειτουργεί η εντολή.

Παρακάτω είναι η σύνταξη της εντολής που θα χρησιμοποιήσουμε.

echo dir_1 dir_2 dir_3 | xargs -n 1 cp file1

Σε αυτή την περίπτωση, θέλουμε να τροφοδοτήσουμε την έξοδο της εντολής echo ως είσοδο στην εντολή xargs. Για να το κάνουμε αυτό, χρησιμοποιούμε το σύμβολο pipe ( | ) το οποίο τροφοδοτεί την έξοδο από μια εντολή ως είσοδο σε μια άλλη. Η εντολή xargs θα εκτελέσει την εντολή cp τρεις φορές, προσθέτοντας κάθε φορά τη διαδρομή του επόμενου καταλόγου που της διαβιβάστηκε από την εντολή echo στο τέλος της εντολής cp. Υπάρχουν τρία ορίσματα που περνούν στην xargs , αλλά η επιλογή -n 1 στην εντολή xargs της λέει να επισυνάπτει μόνο ένα από αυτά τα ορίσματα κάθε φορά στην εντολή cp κάθε φορά που εκτελείται.

Το καταλάβατε;

Παρακάτω είναι το παράδειγμα της εντολής.

echo dir_1 dir_2 dir_3 | xargs -n 1 cp copythisfile.txt

YouTube video: Πώς να αντιγράψετε ένα αρχείο σε πολλούς καταλόγους στο Linux με μία μόνο εντολή


Rate article