Come Utilizzare il Comando rinomina su Linux

0
954
Fatmawati Achmad Zaenuri/Shutterstock.com

Fare i conti con la ridenominazione del file centrale elettrica del mondo Linux e dare mv e di voi stessi un periodo di riposo. Rinominare è flessibile, veloce, e a volte anche più facile. Ecco un tutorial per questo concentrato di un comando.

Cosa c’è di Sbagliato Con mv?

Non c’è niente di sbagliato con la mv . Il comando fa un ottimo lavoro ed è presente su tutte le distribuzioni Linux, in macOS, e altri sistemi operativi Unix-like. Quindi è sempre disponibile. Ma a volte si ha solo bisogno di una ruspa, non una pala.

Il comando mv ha uno scopo nella vita, e che è quello di spostare i file. Si tratta di un felice effetto collaterale che può essere utilizzato per spostare un file esistente in un nuovo file con un nuovo nome. L’effetto netto è quello di rinominare il file, in modo che possiamo ottenere quello che vogliamo. Ma mv non è un apposito strumento per rinominare i file.

Ridenominazione di un Singolo File Con mv

Per utilizzare mv per rinominare un file tipo mv, uno spazio, il nome del file, uno spazio, e il nuovo nome che si desidera che il file da avere. Quindi premere Invio.

È possibile utilizzare il comando ls per controllare il file è stato rinominato.

mv oldfile.txt newfile.txt
ls *.txt

Rinominare Più File con mv

Le cose si fanno più complicate quando si desidera rinominare più file. mv non ha capacità di affrontare con rinominare file multipli. È necessario ricorrere all’utilizzo di alcuni nifty Bash trucchi. Va bene se si conoscono alcuni media riga di comando fu, ma la complessità di rinominare più file con mv è in netto contrasto con la facilità di utilizzo di mv per rinominare un file singolo.

Le cose degenerare rapidamente.

Diciamo che abbiamo una directory di una varietà di file di diversi tipi. Alcuni di questi file hanno una “.prog” estensione. Vogliamo rinominarle a riga di comando in modo che essi hanno una “.prg di estensione”.

Come facciamo a disputare la mv in che fa per noi? Diamo un’occhiata ai file.

ls *.prog -l

Ecco un modo di fare che non consente di ricorrere alla scrittura di un effettivo Bash script file.

per f in *.prog; do mv — “$f” “${f%.prog}.prg”

Ha fatto quel lavoro? Andiamo a controllare i file e vedere.

ls *.pr*

Quindi, sì, ha funzionato. Sono tutti “.prg” file ora, e non ci sono “.prog” i file nella directory.

Che Cosa È Successo?

Che cosa ha fatto a lungo comando effettivamente fare? Scomponiamolo.

per f in *.prog; do mv — “$f” “${f%.prog}.prg”

La prima parte inizia un ciclo che sta per ogni processo “.prog” file nella directory, di volta in volta.

La parte successiva dice che il trattamento potrà fare. Utilizza la mv per spostare un file in un nuovo file. Il nuovo file sta per essere nominato con il nome originale escluso “.prog” parte. Una nuova estensione “.prg” sarà invece utilizzato.

Ci deve essere un Modo più Semplice

La maggior parte sicuramente. È il comando rinomina.

rinominare non è parte di standard per la distribuzione di Linux, quindi sarà necessario per installarlo. Essa ha anche un nome diverso in diverse famiglie di Linux, ma non tutte funzionano allo stesso modo. Basta sostituire il comando appropriato nome secondo il Linux sapore che si sta utilizzando.

in Ubuntu e distribuzioni derivate da Debian si installa rinominare come questo:

sudo apt-get install rinominare

In Fedora e RedHat distribuzioni derivate da installare prename come questo. Nota iniziale “p”, che si distingue per il Perl.

sudo dnf installare prename

Per installarlo in Manjaro Linux, utilizzare il comando riportato di seguito. Nota che il nome del comando è chiamato perl-rinomina.

sudo pacman -Syu perl-rinominare

Facciamolo di Nuovo

E questa volta usiamo rinominare. Staremo a rotolare indietro l’orologio in modo che abbiamo una serie di “.prog” dei file.

ls *.prog

Ora usiamo il seguente comando per rinominare loro. Provvederemo a verificare con ls se ha funzionato. Ricordatevi di sostituire rinominare con il comando appropriato nome di Linux se non si utilizza Ubuntu o una derivata Debian Linux.

rename ‘s/.prog/.prg/’ *.prog
ls *.pr*

Che ha funzionato, ora sono tutti “.prg” i file, e non ci sono “.prog” i file presenti nella directory.

Che Cosa È Successo Questa Volta?

Proviamo a spiegare quel pizzico di magia in tre parti.

La prima parte è il nome del comando, rinominare (o prename o perl-rinominare , per le altre distribuzioni).

L’ultima parte è *.prog, che racconta la rinomina di operare su tutti “.prog” dei file.

La parte centrale definisce il lavoro vogliamo essere fatto su ogni nome di file. La s significa sostituire. Il primo termine (.prog) è quello di rinominare cercherà in ogni nome di file e il secondo termine (.prg) è quello che verrà sostituita con.

La parte centrale del comando, o centrale di espressione, è un Perl ‘espressione regolare‘ ed è ciò che dà il comando rinomina la sua flessibilità.

Modifica di Altre Parti di un nome di file

Abbiamo cambiato le estensioni di file finora, andiamo a modificare altre parti di nomi di file.

Nella directory sono un sacco di C file di codice sorgente. Tutti i nomi sono preceduti dal prefisso “slang_”. Si può controllare con ls.

ls sl*.c

Stiamo andando a sostituire tutte le occorrenze di “slang_” con “sl_”. Il formato del comando è già familiare a noi. Siamo solo di cambiare il termine di ricerca, la sostituzione del termine, e il tipo di file.

rename ‘s/slang_/sl_’ *.c

Questo momento stiamo cercando “.c” file ” e cercare “slang_”. Ogni volta che “slang_” si trova in un nome di file viene sostituito con “sl_”.

Siamo in grado di controllare il risultato di quel comando ripetendo il comando ls con gli stessi parametri:

ls sl*.c

Eliminazione di una Parte di un nome di file

Siamo in grado di rimuovere una parte di un nome di file, sostituendo il termine di ricerca con nulla.

ls *.c
rename ‘s/sl_//’ *.c
ls *.c

Possiamo vedere dal comando ls che la nostra “.c” sono tutti i file preceduto da “sl_”. Liberiamoci di tutto.

Il comando rinomina segue lo stesso formato come prima. Stiamo andando a cercare “.c” file. Il termine di ricerca è “sl_”, ma non vi è alcuna sostituzione termine. Due barre rovesciate senza nulla tra di loro non significa nulla, una stringa vuota.

rinominare il processo di elaborazione, di ogni “.c” a sua volta. Ricerca per “sl_” nel nome del file. Se viene trovato, sarà sostituito da nulla. In altre parole, il termine di ricerca è eliminato.

Il secondo utilizzare il comando ls conferma che il “sl_” prefisso è stato rimosso da tutti “.c” file.

Limite di Modifiche a Parti Specifiche di Nomi di file

Proviamo ad usare l’ls per visualizzare i file che contengono la stringa “param” nel loro nome. Utilizzeremo poi rinomina per sostituire la stringa con la stringa “parametro”. Useremo ls, una volta di più, per vedere l’effetto del comando rename ha avuto su quei file.

ls *param*
rename ‘s/param/parametro’ *.c
ls *param*

Quattro sono presenti i file che sono “param” nel loro nome. param.c, parametro_uno.c, e parametro_due.c hanno tutti “param” all’inizio del loro nome. third_param.c è “param” alla fine del nome, appena prima dell’estensione.

Il comando rinomina sta andando alla ricerca di “param” ovunque nel nome del file, e sostituirlo con “parametro” in tutti i casi.

Il secondo utilizzare il comando ls ci mostra che questo è esattamente ciò che è accaduto. Se “param” era all’inizio o alla fine di un nome di file, è stato sostituito dal “parametro”.

Possiamo usare Perl metacaratteri per affinare il comportamento del mezzo di espressione. I metacaratteri sono simboli che rappresentano posizioni o sequenze di caratteri. Per esempio, ^ significa “inizio di una stringa,” $ significa “fine di una stringa,” e . significa qualsiasi carattere singolo (a parte un carattere di nuova riga).

Stiamo andando a utilizzare l’inizio della stringa metacarattere ( ^ ), per limitare la nostra ricerca per l’inizio del nome del file.

ls *param*.c
rename ‘s/^parametro/valore/’ *.c
ls *param*.c
valore di ls*.c

Il file rinominato in precedenza elencati, e si può vedere la stringa “parametro”, è l’avvio di tre nomi di file e alla fine di uno dei nomi di file.

Il nostro comando rinomina utilizza l’inizio della linea (^) metacarattere prima che il termine di ricerca “parametro”. Questo dice rinominare in considerazione solo il termine della ricerca sono stati trovati se si è all’inizio di un nome di file. La stringa di ricerca “parametro” viene ignorata se è in qualsiasi altro punto nel nome del file.

Verifica con ls, possiamo vedere che il nome del file che era “parametro” alla fine del nome del file non è stato modificato, ma i tre nomi che si erano “parametro” all’inizio della loro nomi hanno avuto la stringa di ricerca sostituito dal sostituto termine “valore”.

Il potere di rinominare sta nella potenza del Perl. Tutta la potenza del Perl è a vostra disposizione.

La Ricerca Con Gruppi

rinominare è ancora più assi nella manica. Consideriamo il caso in cui si potrebbe avere file con stringhe simili nei loro nomi. Non sono esattamente le stesse stringhe, in modo semplice, di ricerca e di sostituzione non funziona qui.

In questo esempio usiamo ls per controllare i file che abbiamo che iniziano con “str”. Ci sono due di loro, stringa.c e strangolare.c. Siamo in grado di rinominare entrambe le stringhe in una sola volta utilizzando una tecnica chiamata raggruppamento.

Il centro di espressione di questo comando rinomina di ricerca per le stringhe all’interno di nomi di file che hanno la sequenza di caratteri “stri” o “stra” in cui le sequenze sono immediatamente seguiti da “ng”. In altre parole, il nostro termine di ricerca è di andare a cercare “stringa” e “strang”. La sostituzione del termine “bang”.

ls str*.c
rename ‘s/(stri|stra)ng/bang/’ *.c
ls ban*.c

Utilizzando ls un secondo tempo, conferma che stringa.c è diventato bang.c e strangolare.c è ora di bangle.c.

Traduzioni Con rinominare

Il comando rinomina grado di eseguire azioni sui nomi dei file chiamato traduzioni. Un semplice esempio di una traduzione sarebbe per forza un insieme di nomi di file in maiuscolo.

Il comando rinomina di seguito si noti che non stiamo utilizzando un s/ per avviare il centro di espressione, stiamo usando y/. Questo dice di rinominare non stiamo effettuando una sostituzione; si sta eseguendo un lavoro di traduzione.

A-z termine è un’espressione Perl che significa che tutti i caratteri minuscoli in sequenza dalla a alla z. Allo stesso modo, il termine Z rappresenta tutte le lettere maiuscole in sequenza dalla a alla Z.

Il centro di espressione in questo comando potrebbe essere parafrasato come “se una qualsiasi delle lettere minuscole dalla a alla z sono presenti nel nome del file, sostituirli con i caratteri corrispondenti alla sequenza di lettere maiuscole dalla a alla Z.”

Per forza i nomi di tutti “.prg” file maiuscolo, utilizzare questo comando:

rename ‘s/a-z/A-Z/’ *.prg

ls *.PRG

Il comando ls ci mostra che tutte le “.prg” nomi dei file sono ora in maiuscolo. Infatti, per essere esatto, non sono “.prg” i file più. Sono “.PRG” i file. Linux è case sensitive.

Siamo in grado di invertire tale ultimo comando invertendo la posizione dell’a-z e a-Z termini nel centro di espressione.

rename ‘s/A-Z/a-z/’ *.PRG

ls *.prg

Si (Wo|Do)n non Imparare il Perl in Cinque Minuti

Fare i conti con il Perl è tempo ben speso. Ma per iniziare a utilizzare il risparmio di tempo, di capacità di comando rinomina, non avete bisogno di molto di Perl conoscenza a tutti di trarre grandi benefici in potenza, la semplicità e l’ora.

CONTINUA A LEGGERE

  • “Come Smettere di Rubare i Vostri Pacchetti
  • “Perché i Servizi di Streaming a pagamento per HD e 4K?
  • “Come Flusso di UFC 238 Cejudo vs Moraes Online
  • “Come Input Kaomoji su Windows 10 (╯°□°)╯︵ ┻━┻
  • “Come Guardare il 2019 Coppa del Mondo FIFA Online (Senza Cavo)