Shell Geek Μετονομασία πολλαπλών αρχείων με τη μία
Ας υποθέσουμε ότι έχετε έναν κατάλογο με εκατοντάδες αρχεία με λανθασμένα ονόματα αρχείων και θα θέλατε να αντικαταστήσετε κάθε όνομα αρχείου που περιέχει δοκιμή με κέντρο. (αυτό είναι ένα περίπλοκο παράδειγμα). Μπορούμε εύκολα να το κάνουμε αυτό με την εντολή "για" στο bash, σε συνδυασμό με μια μικρή καλοσύνη bash. Σήμερα θα μάθουμε πώς να αντικαταστήσουμε το κείμενο σε μια μεταβλητή σε ένα για βρόχο.
Η εντολή "για" λειτουργεί ως εξής:
για var var · κάνουμε $ var;
Μπορείτε να αντικαταστήσετε με οποιοδήποτε μοτίβο αντιστοίχισης αρχείων, όπως * ή * .txt, και μπορείτε να το αντικαταστήσετε με οποιαδήποτε εντολή linux. Η εντολή θα εκτελεστεί διαδοχικά σε κάθε ένα από τα αρχεία που ταιριάζουν με το πρότυπο αντιστοίχισης αρχείου.
Αυτό είναι όπου το μεταβλητό χειρισμό bash το καθιστά ακόμα πιο ενδιαφέρον. Αντί να κάνουμε κάτι σαν "mv $ var", μπορούμε να αντικαταστήσουμε το κείμενο στο όνομα αρχείου χρησιμοποιώντας αυτή τη σύνταξη:
$ var / originaltext / replacetext
Τώρα λοιπόν, αν εκτελέσουμε αυτήν την εντολή στον κατάλογό μας:
για το f στο *, κάνουμε mv $ f $ f / test / prod, γίνει
Για κάθε αρχείο που ταιριάζει με *, το bash θα εκτελέσει μια εντολή παρόμοια με αυτή:
mv test.config prod.config
Έχω διαπιστώσει ότι η γνώση του κελύφους είναι ανεκτίμητη όταν διαχειρίζεστε διακομιστές ή απλώς για τη διαχείριση της συλλογής αρχείων σας και με εξοικονομούσε ώρες που θα ήταν διαφορετικά η χειρωνακτική εργασία.
Και ναι, συνειδητοποιώ ότι υπάρχουν πολλά εργαλεία που μπορούν να επιτύχουν τη μετονομασία πολλών αρχείων.