Brukerhåndbok: Bruk endre navn på Command On Linux

Har du noen gang prøvd å bruke kommandoen omdøpe på Linux ? Vil du ta tak i filen som omdøper kraftverket i Linux-verdenen og gi mv —og deg selv — en hvile. Endre navn er raskt, fleksibelt og ganske lettere. Her er en detaljert veiledning om dette kraftverket for en kommando.





Hva går galt med mv?

Det er ingenting som gikk galt med mv . Imidlertid gjør kommandoen en god jobb. Du kan også finne den på alle Linux-distribusjoner, i macOS og i annet Unix-lignende operativsystem. Det er imidlertid alltid tilgjengelig. Men absolutt, du vil ikke ha en spade, men trenger en bulldozer.



Kommandoen mv har et formål i livet, og det er å flytte filer. Det er en trygg bivirkning at den kan brukes til å flytte en eldre fil inn i den nye filen, med et nytt navn. Effekten er å gi nytt navn til filen, slik at du får det du vil ha. Men mv er ikke et tilpassingsverktøy for filnavn.

Hvordan endre navn på en enkelt fil med mv

endre navn på filer på Linux



Hvis du vil bruke mv for å gi nytt navn til en fil, skriv deretter inn mv, space, filnavnet, space og det nye navnet du vil at filen skal ha. Trykk deretter på Enter.



Du kan også bruke ls for å kontrollere at filen blir omdøpt eller ikke

mv rename

Hvordan endre navn på flere filer med mv

Ting blir komplekse etter å gi nytt navn til flere filer. perl-rename har ingen mulighet til å håndtere å gi nytt navn til forskjellige filer. Du må ty til å bruke noen nyttige Bash-triks. Det er bra hvis du kjenner til noen kommandolinjefu av middels klasse, men vanskeligheten med å gi nytt navn til forskjellige filer med mv står bare for brukervennligheten mv for å gi nytt navn til en enkelt fil.



Ting eskalerer øyeblikkelig.



La oss si at her er en katalog med mange filer i, av forskjellige typer. Noen filer har en .prog Utvidelse. Vi ønsker å gi disse filene nytt navn på kommandolinjen slik at de har en .prg Utvidelse.

La oss ta en titt på filene.

rename

Her er en metode for å gjøre det som ikke kan ty til å skrive en faktisk Bash-skriptfil.

rename

Fungerte det eller ikke? La oss sjekke filene og fortsette videre.

rename

Så det fungerer bra. De er alle det .prg filer nå, og det er ingen .prog filer i katalogen.

Hva skjedde?

Hva gjorde egentlig den lange kommandoen? La oss sjekke det ut.

prename

Den første delen begynner en sløyfe som skal behandle hver .prog filen i katalogen, i sin tur.

En annen del sier hva behandlingen vil gjøre . Det bruker mv for å flytte hver fil til den nye filen. Det nye filnavnet kommer til å være ganske likt det originale filnavnet bortsett fra .prog-delen. Også utvidelsen av .prg vil bli brukt.

Her er en enkel måte

Mest sannsynlig. Her er endre navn kommando.

endre navn på filer på Linux

Det er ikke en del av standard Linux-distribusjon, så du vil installere den. Det har også et annet navn i forskjellige familier av Linux, men de fungerer alle på en lignende måte. Du vil ganske enkelt erstatte riktig kommandonavn i henhold til smaken av Linux du bruker.

I Debian-avledede eller Ubuntu-distribusjoner installerer du ganske enkelt perl-rename som dette:

*.prog

I RedHat-avledede distribusjoner eller Fedora installerer du ganske enkelt fornavn som dette. Husk at den første p, står for Perl.

rename

Bruk følgende kommando for å installere den i Manjaro Linux. Husk at omdøpningskommandoen er kjent som s.

.prog

Bruk endre navn på Command -> Come Let’s One More Try

Her bruker vi rename. Vi gjør dette slik at vi har et sett med .prog-filer.

.prg

La oss bruke kommandoen nedenfor for å gi dem nytt navn. Vi vil også sjekke med ls kommandere om det fungerte eller ikke. Hvis du vil erstatte rename med det nøyaktige kommandonavnet for Linux hvis ikke kan bruke Ubuntu eller et Debian-avledet Linux.

ls ls

Det fungerer bra, nå er de alle .prg-filer unntatt .prog filer som er igjen i katalogen.

Hva skjedde her?

La oss diskutere det i tre deler.

I først del, vil du se kommandonavnet rename (eller ls eller ls, for de andre distribusjonene).

Den tredje siste del er ^, som forklarer $ for å operere alle .prog-filer.

De sekund del forklarer arbeidet vi liker å bli gjort på hvert filnavn. ^ betyr vikar. Den første terminen (ls) er hva ls vil se etter i hvert filnavn, og den andre termen (ls) er det den skal erstattes med.

hvordan du tørker en diskusjonsprat

Kommandoene midtdel eller sentralt uttrykk er et Perl ‘regulært uttrykk’ og det er det som gir s/ befaler dens pålitelighet.

Endring av andre deler av et filnavn

Vi har endret filnavnutvidelser så langt, la oss endre andre deler av filnavnene.

I katalogen er det mange C-kildekodefiler. Alle filnavn er foran slang_. Vi kan også sjekke dette med y/.

a-z

Her erstatter vi alle forekomster av slang_ med sl_. Kommandoformatet er ganske kjent for oss. Vi endrer bare søkeord, erstatningsterm og filtype.

A-Z

Her søker vi etter .c-filer, og ser etter slang_. Hver gang du fant slang_ i et filnavn, erstattes det med sl_.

Du kan også sjekke kommandoresultatet etter å ha gjentatt kommandoen ls ovenfra ved hjelp av de samme parametrene:

a-z

Fjerne en del av et filnavn

Vi kan også slette en del av et filnavn etter å ha erstattet søkeordet med ingenting.

mv oldfile.txt newfile.txt

Vi kan også se fra ls befale at vår .c filer er alle forhåndsbetalt med sl_. La oss forlate det helt.

De endre navn kommandoen følger samme format som nevnt ovenfor. Vi skal søke etter .c-filer. Søkeordet er sl_, men det er ingen term for erstatning. To tilbakeslag '//' uten noe mellom dem betyr en tom streng.

ls *.txt
kan behandle hver .c-fil etter tur. Det søker også etter sl_ i filnavnet. Hvis du fant det, kan du bli erstattet av ingenting. Alternativt fjernes søkeordet.

En annen bruk av

ls *.prog -l
kommandoen bekrefter at sl_-prefikset er slettet fra hver .c-fil.

Grense endres til bestemte deler av filnavn

Kom la oss bruke

for f in *.prog; do mv -- '$f' '${f%.prog}.prg'
for å se på filer som har strengparameteren i filnavnet. Så bruker vi endre navn kommando for å erstatte strengen via strengparameter. Også bruker vi ls en gang til for å se effekten av endre navn kommandoen har hatt på disse filene.

ls *.pr*
for f in *.prog; do mv -- '$f' '${f%.prog}.prg'
sudo apt-get install rename

Deretter ser du fire filer som har Stoppe i filnavnet. param.c, param_one.c og param_two.c har alle Stoppebegynnelsen av navnet deres. third_param.c har Stoppesiste av navnet sitt, like før utvidelsen.

Du kan søke endre navn kommando for param overalt i filnavnet. Du kan deretter erstatte den med parameter i alle tilfeller.

En annen bruk av ls kommandoen viser oss at det som har skjedd nøyaktig. Om Stoppe var i begynnelsen eller på slutten av filnavnet. Du kan også erstatte den med en parameter.

Vi kan bruke Perls metategn for å rense oppførselen til det sentrale uttrykket. Metategn er tegnene som representerer sekvenser eller posisjoner av tegn. For eksempel

sudo dnf install prename
betyr start på en streng, (.) betyr ethvert enkelt tegn (i tillegg til et nytt linjetegn),
sudo pacman -Syu perl-rename
betyr slutten på en streng.

Vi bruker også begynnelsen på strengmetakarakter (

ls *.prog
) for å begrense søket til starten av filnavnene.

rename 's/.prog/.prg/' *.prog
ls *.pr*
ls sl*.c
rename 's/slang_/sl_' *.c

Filene vi omdøpte er oppført tidligere. Vi kan også se at strengparameteren er i begynnelsen av 3 filnavn, og den ligger på slutten av et av filnavnene.

Våre endre navn kommandoen bruker begynnelsen av linjemetakarakteren (^) før parameteren for søkeordet. Det forklarer å bare vurdere søkeordet som ble funnet hvis det er i begynnelsen av filnavnet. Søkestrengsparameteren vil unngås hvis den er noe annet sted i filnavnet.

Ser vi med

ls sl*.c
, kan vi da se at filnavnet har parameteren ved siste av filnavnet er ikke endret. Men de tre filnavnene har parameteren ved begynnelsen av navnene deres med søkestreng erstattet av erstatningsverdien.

De endre navn makt ligger i kraften til Perl.

Ser med grupperinger

Her er tilfelle der du sannsynligvis har filer med de samme strengene i navnet. De er ikke like nøyaktig de samme strengene, så du bare ser etter, og substitusjon kan ikke fungere her.

I dette eksemplet bruker vi

ls *.c rename 's/sl_//' *.c ls *.c
for å se hvilke filer vi har som begynner med str. Det er også to av dem, string.c og strangle.c. Vi kan også gi nytt navn til begge strengene etter å ha brukt en metode kjent som en gruppering.

Midtuttrykket til endre navn kommandoen vil søke etter strenger i filnavn som har tegnsekvensen stri eller stra. Her følges disse sekvensene av ng. Alternativt vil søkeordet vårt se etter streng og merkelig. Erstatningsuttrykket er smell.

ls *param*
rename 's/param/parameter' *.c
ls *param*

Etter bruk

ls *param*.c
en annen gang bekrefter at string.c har blitt en bang.c og strangle.c er nå bangle.c.

Bruk omdøpe Kommando med oversettelser

De endre navn kommando utfører alle handlinger på filnavn kjent som oversettelser. Her er et eksempel på en oversettelse som tvinger et sett med filnavn til store bokstaver.

I endre navn kommandoen nedenfor, varsler at vi ikke bruker en

rename 's/^parameter/value/' *.c
til begynnelsen av det midtre uttrykket, bruker vi
ls *param*.c
. Det forklarer at kommandoen ikke kan utføre en erstatning; vi utfører en oversettelse.

Begrepet

ls value*.c
er et Perl-uttrykk. Det betyr at alle små bokstaver i sekvensen fra a til z. Men, begrepet
ls str*.c
representerer alle store bokstaver i sekvensen fra A til Å.

Midtuttrykket i denne kommandoen kan omskrives som om noen av små bokstaver fra a til z blir funnet i filnavnet. Den erstatter dem ved å bruke de tilsvarende tegnene fra rekkefølgen på store bokstaver fra A til Å.

Hvis du vil tvinge filnavnene til alle .prg-filer til store bokstaver, bruker du bare denne kommandoen:

endre navn på ‘y / a-z / A-Z /’ * .prg

rename 's/(stri|stra)ng/bang/' *.c

Kommandoen

ls ban*.c
vis oss at alle .prg utvidelsesfiler er nå med store bokstaver. For å være strengt nøyaktige, er de ikke det .prg filer lenger. De er .PRG-filer. Forsikre deg om at Linux er mellom store og små bokstaver.

Vi kan også reversere den siste kommandoen etter å ha returnert til posisjonen til

ls *.PRG
og AZ termer i midtuttrykket.

endre navn på ‘y / A-Z / a-z /’ * .PRG

ls * .prg

Du kan ikke lære Perl på fem minutter

Å få tak i Perl er godt brukt tid. Men for å begynne å bruke tidsbesparende funksjoner til endre navn kommando, ser du ikke å ha mye Perl-kunnskap i det hele tatt for å høste store fordeler i kraft.

Konklusjon:

Her handler alt om 'Bruk endre navn på Command On Linux'. Hva er dine synspunkter om det? Hvis du vil dele noen annen metode eller tips angående artikkelen, så gi oss beskjed nedenfor. For ytterligere spørsmål og spørsmål, gi oss beskjed i kommentarfeltet nedenfor!

Les også: