Μετονομασία – Ένα εργαλείο γραμμής εντολών για μετονομασία πολλών αρχείων στο Linux


Συχνά χρησιμοποιούμε την εντολή "mv" για να μετονομάσουμε ένα μεμονωμένο αρχείο στο Linux. Ωστόσο, η γρήγορη μετονομασία πολλών ή ομάδων αρχείων καθιστά πολύ δύσκολη την εργασία σε ένα τερματικό.

Το Linux συνοδεύεται από ένα πολύ ισχυρό ενσωματωμένο εργαλείο που ονομάζεται μετονομασία. Η εντολή rename χρησιμοποιείται για μετονομασία πολλών ή ομάδων αρχείων, μετονομασία αρχείων σε πεζά, μετονομασία αρχείων σε κεφαλαία και αντικατάσταση αρχείων χρησιμοποιώντας εκφράσεις perl.

Η εντολή "rename" είναι μέρος του σεναρίου Perl και βρίσκεται στο "/usr/bin/" σε πολλές διανομές Linux. Μπορείτε να εκτελέσετε την εντολή "which" για να μάθετε τη θέση της εντολής μετονομασίας.

which rename
/usr/bin/rename
Η βασική σύνταξη της εντολής μετονομασίας
rename 's/old-name/new-name/' files

Η εντολή μετονομασίας συνοδεύεται από λίγα προαιρετικά επιχειρήματα μαζί με υποχρεωτική έκφραση perl που καθοδηγεί την εντολή μετονομασίας για την εκτέλεση της πραγματικής εργασίας.

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
  1. -v: Εκτύπωση ονομάτων αρχείων που μετονομάστηκαν επιτυχώς.
  2. -n: Δείξτε ποια αρχεία θα είχαν μετονομαστεί.
  3. -f: Αναγκαστική αντικατάσταση υπαρχόντων αρχείων.
  4. perlexpr: Έκφραση Perl.

Για καλύτερη κατανόηση αυτού του βοηθητικού προγράμματος, έχουμε συζητήσει μερικά πρακτικά παραδείγματα αυτής της εντολής στο άρθρο.

1. Παράδειγμα βασικής εντολής μετονομασίας

Ας υποθέσουμε ότι έχετε μια δέσμη αρχείων με επέκταση ".html" και θέλετε να μετονομάσετε όλα τα αρχεία ".html" σε ".php" με μια κίνηση. Για παράδειγμα, κάντε πρώτα ένα "ls -l" για να ελέγξετε τη λίστα αρχείων με επέκταση ".html".

ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

Τώρα, θέλετε να αλλάξετε την επέκταση όλων αυτών των αρχείων από ".html" σε ".php". Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή "μετονομασία" με την έκφραση perl όπως φαίνεται παρακάτω.

ravisaive@tecmint:~$ rename 's/\.html$/\.php/' *.html

Σημείωση: Στην παραπάνω εντολή χρησιμοποιήσαμε δύο ορίσματα.

  1. Το πρώτο όρισμα είναι μια έκφραση perl που αντικαθιστά το .html με το .php.
  2. Το δεύτερο όρισμα λέει στην εντολή μετονομασία να αντικαταστήσει όλα τα αρχεία με *.php.

Ας επαληθεύσουμε εάν όλα τα αρχεία έχουν μετονομαστεί σε επέκταση ".php", κάνοντας ls -l στη γραμμή εντολών.

ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.php
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.php
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.php
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.php
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.php
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.php
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.php

Τώρα μπορείτε να δείτε παραπάνω ότι όλα τα αρχεία html μετονομάζονται σε php.

2. Ελέγξτε τις αλλαγές πριν εκτελέσετε την εντολή μετονομασίας

Ενώ κάνετε κρίσιμες ή σημαντικές εργασίες μετονομασίας, μπορείτε πάντα να ελέγξετε τις αλλαγές εκτελώντας την εντολή μετονομασίας με το όρισμα «-n». Η παράμετρος "-n" θα σας πει ακριβώς ποιες αλλαγές θα πραγματοποιηθούν, αλλά οι αλλαγές δεν γίνονται στην πραγματικότητα. Εδώ, είναι το παράδειγμα της παρακάτω εντολής.

ravisaive@tecmint:~$ rename -n 's/\.php$/\.html/' *.php

cricket.php renamed as cricket.html
entertainment.php renamed as entertainment.html
health.php renamed as health.html
lifestyle.php renamed as lifestyle.html
news.php renamed as news.html
photos.php renamed as photos.html
sports.php renamed as sports.html

Σημείωση: Η παραπάνω έξοδος εντολής εμφανίζει μόνο τις αλλαγές, αλλά στην πραγματικότητα οι αλλαγές δεν γίνονται, εκτός και αν εκτελέσετε την εντολή χωρίς διακόπτη "-n".

3. Εκτύπωση Μετονομασία εξόδου

Είδαμε ότι η εντολή μετονομασίας δεν εμφάνιζε καμία πληροφορία για τις αλλαγές που κάνει. Έτσι, εάν θέλετε να λάβετε τις λεπτομέρειες της εντολής μετονομασίας (όπως κάναμε χρησιμοποιώντας την επιλογή "-n", εδώ χρησιμοποιούμε την επιλογή "-v" για να εκτυπώσουμε την πλήρη λεπτομέρειες όλων των αλλαγών που έγιναν με την εντολή μετονομασίας με επιτυχία.

ravisaive@tecmint:~$ rename -v 's/\.php$/\.html/' *.php

cricket.php renamed as cricket.html
entertainment.php renamed as entertainment.html
health.php renamed as health.html
lifestyle.php renamed as lifestyle.html
news.php renamed as news.html
photos.php renamed as photos.html
sports.php renamed as sports.html

4. Μετατρέψτε όλα τα πεζά σε κεφαλαία και αντίστροφα

Για να μετονομάσω ομαδικά όλα τα αρχεία με πεζά ονόματα σε κεφαλαία. Για παράδειγμα, θέλω να κρύψω όλα αυτά τα ακόλουθα αρχεία από πεζά σε >άνω κεφαλαία.

Από πεζά σε κεφαλαία
ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

Απλώς, χρησιμοποιήστε την ακόλουθη εντολή με την έκφραση perl.

ravisaive@tecmint:~$ rename 'y/a-z/A-Z/' *.html

Αφού εκτελέσετε την παραπάνω εντολή, μπορείτε να ελέγξετε τις αλλαγές κάνοντας "ls -l".

ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 CRICKET.HTML
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 ENTERTAINMENT.HTML
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 HEALTH.HTML
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 LIFESTYLE.HTML
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 NEWS.HTML
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 PHOTOS.HTML
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 SPORTS.HTML

Μπορείτε να δείτε ότι η παραπάνω εντολή μετονόμασε στην πραγματικότητα όλα τα ονόματα αρχείων (με επέκταση .HTML) σε κεφαλαία.

Άνω προς Μικρό

Ομοίως, μπορείτε επίσης να μετατρέψετε όλους τους χαρακτήρες κεφαλαία σε πεζά χρησιμοποιώντας την ακόλουθη εντολή.

ravisaive@tecmint:~$ rename 'y/A-Z/a-z/' *.HTML
ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

5. Κάντε κεφαλαίο το πρώτο γράμμα του ονόματος αρχείου

Για να χρησιμοποιήσετε κεφαλαία μόνο το πρώτο γράμμα κάθε ονόματος αρχείου, χρησιμοποιήστε την ακόλουθη εντολή.


rename 's/\b(\w)/\U$1/g' *.ext

6. Αντικαταστήστε τα υπάρχοντα αρχεία

Εάν θέλετε να αντικαταστήσετε αναγκαστικά υπάρχοντα αρχεία, χρησιμοποιήστε την επιλογή «-f», όπως φαίνεται παρακάτω.

ravisaive@tecmint:~$ rename -f 's/a/b/' *.html

Εάν θέλετε να μάθετε περισσότερα σχετικά με την εντολή μετονομασίας, πληκτρολογήστε το "μετονομασία ανθρώπου" στο τερματικό.

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