Guida per l'utente: utilizzare il comando rename su Linux
Hai mai provato a usare il comando rinomina su Linux ? Vuoi fare i conti con il potere di rinominare i file del mondo Linux e fornire mv —e te stesso — una pausa. Rinominare è veloce, flessibile e abbastanza semplice. Ecco una guida dettagliata su questa centrale elettrica di un comando.
Cosa c'è di sbagliato in mv?
Non è andato storto nulla con mv . Tuttavia, il comando fa un buon lavoro. Inoltre, puoi trovarlo su tutte le distribuzioni Linux, in macOS e in altri sistemi operativi simili a Unix. Tuttavia, è sempre disponibile. Ma certamente, non vuoi una pala ma hai bisogno di un bulldozer.
Il comando mv ha uno scopo nella vita, ovvero spostare i file. È un effetto collaterale sicuro che può essere utilizzato per spostare un file più vecchio in il nuovo file, con un nuovo nome. L'effetto è quello di rinominare il file, in modo da ottenere ciò che desideri. Ma mv non è uno strumento di ridenominazione di file personalizzato.
Come rinominare un singolo file con mv

Se vuoi usare mv per rinominare un file, quindi digitare mv, spazio, il nome del file, lo spazio e il nuovo nome che desideri abbia il file. Quindi premi Invio.
Puoi anche usare ls per verificare che il file venga rinominato o meno
mv renameCome rinominare più file con mv
Le cose si complicano dopo aver rinominato più file. perl-rename non è in grado di gestire la ridenominazione di vari file. Devi ricorrere all'uso di alcuni utili trucchi Bash. Va bene se conosci un fu da riga di comando di livello medio, ma la difficoltà di rinominare file diversi con mv sta solo alla facilità d'uso mv per rinominare un singolo file.
Le cose si intensificano all'istante.
Supponiamo che questa sia una directory con molti file al suo interno, di diversi tipi. Alcuni file hanno l'estensione .prog estensione. Vorremmo rinominare quei file sulla riga di comando in modo che abbiano l'estensione .prg estensione.
Vieni, diamo un'occhiata ai file.
renameEcco un metodo per farlo che non può ricorrere alla scrittura di un vero file di script Bash.
renameHa funzionato o no? Controlliamo i file e poi procediamo oltre.
renameQuindi funziona bene. Lo sono tutti .prg file ora e non ci sono .prog file nella directory.
Quello che è successo?
Cosa ha fatto effettivamente il comando lungo? Controlliamolo.
prenameLa prima parte inizia un ciclo che elaborerà ogni file .prog file nella directory, a sua volta.
Un'altra parte dice quale sarà l'elaborazione fare . Utilizza mv per spostare ogni file nel nuovo file. Il nuovo nome del file sarà abbastanza simile al nome del file originale tranne per la parte .prog. Inoltre, verrà utilizzata l'estensione di .prg.
Ecco un modo semplice
Sicuramente. Ecco il rinominare comando.

Non fa parte della distribuzione Linux standard, quindi è necessario installarlo. Inoltre, ha un nome diverso in varie famiglie di Linux, ma funzionano tutti in modo simile. Sostituirai semplicemente il nome del comando corretto in base al gusto di Linux che stai utilizzando.
Nelle distribuzioni derivate da Debian o Ubuntu devi semplicemente installare perl-rename come questo:
*.progNelle distribuzioni derivate da RedHat o Fedora devi semplicemente installare prename come questo. Ricorda che la p iniziale sta per Perl.
renamePer installarlo in Manjaro Linux utilizzare il seguente comando. Tieni presente che il comando di ridenominazione è noto come s.
.progUsa comando rinomina -> Vieni, proviamo ancora
Qui useremo rename. Lo stiamo facendo in modo da avere un set di file .prog.
.prgVieni, usiamo il comando fornito di seguito per rinominarli. Controlleremo anche con ls comando se ha funzionato o meno. Se vuoi sostituire rename con il nome del comando accurato per Linux se non è possibile utilizzare Ubuntu o un Linux derivato da Debian.
ls lsFunziona bene, ora sono tutti file .prg esclusi .prog file rimasti nella directory.
Cos'è successo qua?
Discutiamolo in tre parti.
Nel primo parte, visualizzerai il nome del comando, rename (o ls o ls, per le altre distribuzioni).
Il terzo scorso parte è ^, che spiega $ per operare su tutti i file .prog.
Il secondo parte spiega il lavoro che ci piace fare su ogni nome di file. Il ^ significa sostituto. Il primo termine (ls) è cosa ls cercherà in ogni nome di file e il 2 ° termine (ls) è ciò con cui verrà sostituito.
Chrome Remote Desktop vs TeamViewer
La parte centrale dei comandi o espressione centrale è una 'espressione regolare' Perl ed è ciò che fornisce s/ comandarne l'affidabilità.
Modifica di altre parti di un nome file
Finora abbiamo modificato le estensioni dei nomi dei file, cambiamo altre parti dei nomi dei file.
Nella directory sono presenti molti file di codice sorgente C. Tutti i nomi di file hanno il prefisso gergo_. Possiamo anche verificarlo con y/.
a-zQui sostituiamo tutte le occorrenze di slang_ con sl_. Il formato del comando ci è abbastanza familiare. Stiamo solo modificando il termine di ricerca, il termine sostitutivo e il tipo di file.
A-ZQui stiamo cercando file .c e stiamo cercando slang_. Ogni volta che hai trovato slang_ in un nome di file, viene sostituito con sl_.
Puoi anche controllare il risultato del comando dopo aver ripetuto il comando ls dall'alto utilizzando gli stessi parametri:
a-zRimozione di una parte di un nome di file
Possiamo anche eliminare una parte del nome di un file dopo aver sostituito il termine di ricerca con niente.
mv oldfile.txt newfile.txt
Possiamo anche visualizzare dal ls comando che il nostro .c i file sono tutti preceduti da sl_. Lasciamolo del tutto.
Il rinominare Il comando segue lo stesso formato di cui sopra. Cercheremo file .c. Il termine di ricerca è sl_, ma non esiste un termine di sostituzione. Due barre rovesciate '//' senza nulla tra di loro indicano una stringa vuota.
ls *.txtpuò elaborare a turno ogni file .c. Inoltre, cerca sl_ nel nome del file. Se l'hai trovato, non puoi essere sostituito da niente. In alternativa, il termine di ricerca viene rimosso.
Un altro uso di
ls *.prog -lil comando conferma che il prefisso sl_ è stato cancellato da ogni file .c.
Limita modifiche a parti particolari di nomi di file
Vieni usiamo
for f in *.prog; do mv -- '$f' '${f%.prog}.prg' per visualizzare i file che hanno la stringa param nel nome del file. Quindi useremo rinominare comando per sostituire la stringa tramite il parametro stringa. Inoltre, usiamo ls ancora una volta per visualizzare l'effetto rinominare comando ha avuto su quei file.ls *.pr*
for f in *.prog; do mv -- '$f' '${f%.prog}.prg' sudo apt-get install rename
Visualizzerai quindi quattro file con estensione fermare nel nome del file. param.c, param_one.c e param_two.c hanno tutti fermare al inizio del loro nome. terzo_param.c ha fermare al scorso del suo nome, subito prima dell'estensione.
Puoi cercare rinominare comando per param ovunque nel nome del file. È quindi possibile sostituirlo con il parametro in tutti i casi.
Un altro uso di ls comando ci mostra che cosa è successo esattamente. Se fermare era all'inizio o alla fine del nome del file. Puoi anche sostituirlo con un file parametro.
Possiamo usare i metacaratteri di Perl per purificare il comportamento dell'espressione centrale. I metacaratteri sono i segni che rappresentano sequenze o posizioni di caratteri. Ad esempio,
sudo dnf install prenamesignifica inizio di una stringa, (.) significa qualsiasi carattere singolo (oltre a un carattere di nuova riga),
sudo pacman -Syu perl-renamesignifica fine di una stringa.
Inoltre, usiamo l'inizio del metacarattere della stringa (
ls *.prog) per limitare la nostra ricerca all'inizio dei nomi dei file.
rename 's/.prog/.prg/' *.prog
ls *.pr*
ls sl*.c
rename 's/slang_/sl_' *.c
I file che abbiamo rinominato sono elencati in precedenza. Inoltre, possiamo vedere che il parametro stringa è all'inizio di 3 nomi di file e si trova alla fine di uno dei nomi di file.
Nostro rinominare Il comando utilizza l'inizio della riga metacarattere (^) prima del parametro del termine di ricerca. Spiega di considerare solo il termine di ricerca da trovare se è all'inizio del nome del file. Il parametro della stringa di ricerca verrà evitato se si trova in qualsiasi altra parte del nome del file.
Guardando con
ls sl*.c, possiamo quindi vedere che il nome del file ha il parametro in scorso del nome del file non è stato modificato. Ma i tre nomi di file che hanno parametri in inizio dei loro nomi con la stringa di ricerca sostituita dal valore del termine sostitutivo.
Il rinominare il potere sta nel potere di Perl.
Guardando Con I Raggruppamenti
Ecco il caso in cui probabilmente hai file con le stesse stringhe nei loro nomi. Non sono simili esattamente le stesse stringhe, quindi basta cercare e la sostituzione non può funzionare qui.
In questo esempio usiamo
ls *.c rename 's/sl_//' *.c ls *.cper visualizzare quali file abbiamo che iniziano con str. Inoltre, ce ne sono due, string.c e strangle.c. Possiamo anche rinominare entrambe le stringhe dopo aver utilizzato un metodo noto come raggruppamento.
L'espressione centrale di rinominare Il comando cercherà le stringhe all'interno dei nomi di file che hanno la sequenza di caratteri stri o stra. Qui queste sequenze sono seguite da ng. In alternativa, il nostro termine di ricerca cercherà stringa e strang. Il termine di sostituzione è scoppio.
ls *param*
rename 's/param/parameter' *.c
ls *param*
Dopo aver usato
ls *param*.cun'altra volta conferma che string.c è diventato un bang.c e strangle.c è ora bangle.c.
Usa comando rinomina con traduzioni
Il rinominare Il comando esegue tutte le azioni sui nomi di file noti come traduzioni. Ecco un esempio di una traduzione che forza un insieme di nomi di file in maiuscolo.
Nel rinominare comando fornito di seguito avviso che non stiamo utilizzando un
rename 's/^parameter/value/' *.cper iniziare l'espressione centrale, stiamo usando
ls *param*.c. Spiega che il comando non può eseguire una sostituzione; stiamo eseguendo una traduzione.
Il termine
ls value*.cè un'espressione Perl. Significa che tutti i caratteri minuscoli nella sequenza dalla a alla z. Ma il termine
ls str*.crappresenta tutte le lettere maiuscole nella sequenza dalla A alla Z.
L'espressione centrale in questo comando può essere parafrasata come se una qualsiasi delle lettere minuscole dalla a alla z si trovasse nel nome del file. Li sostituisce utilizzando i caratteri corrispondenti dall'ordine dei caratteri maiuscoli dalla A alla Z.
Se vuoi forzare i nomi dei file di tutti i file .prg in maiuscolo, usa semplicemente questo comando:
rinomina 'y / a-z / A-Z /' * .prg
rename 's/(stri|stra)ng/bang/' *.c
Il comando
ls ban*.cmostraci che tutti i file .prg i file di estensione sono ora in maiuscolo. Inoltre, per essere rigorosamente precisi, non lo sono .prg file più. Beh, sono file .PRG. Assicurati che Linux faccia distinzione tra maiuscole e minuscole.
Possiamo anche invertire l'ultimo comando dopo essere tornati alla posizione di
ls *.PRGe termini A-Z nell'espressione centrale.
rinomina 'y / A-Z / a-z /' * .PRG
ls * .prg
Non puoi imparare Perl in cinque minuti
Prendere confidenza con Perl è tempo ben speso. Ma per iniziare a utilizzare le funzionalità di risparmio di tempo di rinominare comando, non pensi di avere molta conoscenza del Perl per ottenere grandi vantaggi in termini di potenza.
Conclusione:
Ecco tutto su 'Usa comando rinomina su Linux'. Quali sono le tue opinioni al riguardo? Se desideri condividere altri metodi o suggerimenti sull'articolo, faccelo sapere di seguito. Per ulteriori domande e domande fatecelo sapere nella sezione commenti qui sotto!
Leggi anche:


