Användarhandbok: Använd byta namn på Command On Linux

Har du någonsin försökt använda kommandot byta namn på Linux ? Vill du ta tag i filnamnet kraftpaket i Linux-världen och ge mv —och dig själv — en vila. Byt namn är snabbt, flexibelt och ganska lätt. Här är en detaljerad guide om detta kraftpaket för ett kommando.





Vad går fel med mv?

Det har inte gått något fel med mv . Kommandot gör dock ett bra jobb. Du kan också hitta den på alla Linux-distributioner, i macOS och i andra Unix-liknande operativsystem. Det är dock alltid tillgängligt. Men verkligen vill du inte ha en spade utan behöver en bulldozer.



Kommandot mv har ett syfte i livet, och det är att flytta filer. Det är en säker bieffekt att den kan användas för att flytta en äldre fil in i den nya filen, med ett nytt namn. Effekten är att byta namn på filen så att du får vad du vill. Men mv är inte ett anpassningsverktyg för filnamn.

Hur man byter namn på en enda fil med mv

byta namn på filer på Linux



Om du vill använda mv för att byta namn på en fil, skriv sedan mv, space, filnamnet, space och det nya namnet du vill att filen ska ha. Tryck sedan på Enter.



Du kan också använda ls för att kontrollera att filen byts namn eller inte

mv rename

Hur man byter namn på flera filer med mv

Saker blir komplicerade efter att ha bytt namn på flera filer. perl-rename har ingen möjlighet att hantera namn på olika filer. Du måste använda några användbara Bash-tricks. Det är bra om du känner till något medelstort kommandorads-fu, men svårigheten att byta namn på olika filer med mv står bara för att använda mv för att byta namn på en enda fil.



Saker eskalerar omedelbart.



Låt oss säga att här finns en katalog med många filer i den, av olika typer. Vissa filer har en .prog förlängning. Vi vill byta namn på dessa filer på kommandoraden så att de har en .prg förlängning.

Låt oss ta en titt på filerna.

rename

Här är en metod för att göra det som inte kan tillgripa att skriva en faktisk Bash-skriptfil.

rename

Fungerade det eller inte? Låt oss kontrollera filerna och fortsätt sedan vidare.

rename

Så det fungerar bra. De är alla .prg filer nu, och det finns inga .prog filer i katalogen.

Vad hände?

Vad gjorde egentligen det långa kommandot? Låt oss kolla upp det.

prename

Den första delen börjar en slinga som kommer att behandla varje .prog i katalogen i sin tur.

En annan del säger vad behandlingen kommer att göra do . Det använder mv för att flytta varje fil till den nya filen. Det nya filnamnet kommer att likna den ursprungliga filens namn förutom .prog-delen. Dessutom kommer förlängningen av .prg att användas.

Här är ett enkelt sätt

Absolut. Här är Döp om kommando.

byta namn på filer på Linux

Det ingår inte i standard Linux-distribution, så du vill installera det. Det har också ett annat namn i olika familjer av Linux, men de fungerar alla på ett liknande sätt. Du ersätter helt enkelt rätt kommandonamn beroende på vilken smak du använder på Linux.

I Debian-härledda eller Ubuntu-distributioner installerar du helt enkelt perl-rename så här:

*.prog

I RedHat-härledda distributioner eller Fedora installerar du helt enkelt förnamn så här. Kom ihåg att den första p står för Perl.

rename

Använd följande kommando för att installera det i Manjaro Linux. Tänk på att kommandot byta namn kallas s.

.prog

Använd byta namn på Command -> Come Let's Let's One More Try

Här använder vi rename. Vi gör detta så att vi har en uppsättning .prog-filer.

.prg

Låt oss använda kommandot nedan för att byta namn på dem. Vi kollar också med ls kommandot om det fungerade eller inte. Om du vill ersätta rename med det exakta kommandonamnet för Linux om det inte går att använda Ubuntu eller en Debian-härledd Linux.

ls ls

Det fungerar bra, nu är alla .prg-filer exklusive .prog filer kvar i katalogen.

Vad hände här?

Låt oss diskutera det i tre delar.

I först del kommer du att se kommandonamnet rename (eller ls eller ls, för de andra distributionerna).

Den tredje sista del är ^, vilket förklarar $ för att hantera alla .prog-filer.

De andra del förklarar det arbete vi vill göra på varje filnamn. ^ betyder ersättare. Den första terminen (ls) är vad ls kommer att leta efter i varje filnamn och den andra termen (ls) är vad den kommer att ersättas med.

bästa kinesiska tillägget kodi

Kommandona mellersta delen eller det centrala uttrycket är ett 'Perl' -uttryck 'och det är det som ger s/ befaller dess tillförlitlighet.

Ändra andra delar av ett filnamn

Vi har ändrat filnamnstillägg hittills, låt oss ändra andra delar av filnamnen.

I katalogen finns det många C-källkodsfiler. Alla filnamn är prefixade med slang_. Vi kan också kontrollera detta med y/.

a-z

Här ersätter vi alla förekomster av slang_ med sl_. Kommandoformatet är ganska bekant för oss. Vi ändrar bara sökord, ersättningsterm och filtyp.

A-Z

Här söker vi efter .c-filer och letar efter slang_. När du hittade slang_ i ett filnamn ersätts det med sl_.

Du kan också kontrollera kommandoresultatet efter att du har upprepat kommandot ls ovanifrån med samma parametrar:

a-z

Ta bort en del av ett filnamn

Vi kan också ta bort en del av ett filnamn efter att ha ersatt söktermen med ingenting.

mv oldfile.txt newfile.txt

Vi kan också se från ls befalla att vår .c filer är alla förberedda med sl_. Låt oss lämna det helt.

De Döp om kommandot har samma format som nämnts ovan. Vi ska söka efter .c-filer. Söktermen är sl_, men det finns ingen term för substitution. Två snedstreck '//' utan något mellan dem betyder en tom sträng.

ls *.txt
kan behandla varje .c-fil i tur och ordning. Det söker också efter sl_ i filnamnet. Om du hittade det kan du ersättas med ingenting. Alternativt tas sökordet bort.

En annan användning av

ls *.prog -l
kommandot bekräftar att sl_-prefixet har raderats från varje .c-fil.

Begränsning ändras till vissa delar av filnamn

Kom låt oss använda

for f in *.prog; do mv -- '$f' '${f%.prog}.prg'
för att visa filer som har strängparametern i sitt filnamn. Då använder vi Döp om kommando för att ersätta strängen via strängparameter. Vi använder också ls en gång till för att se effekten av Döp om kommandot har haft på dessa filer.

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

Du ser sedan fyra filer med sluta i deras filnamn. param.c, param_one.c och param_two.c har alla sluta vid början av deras namn. third_param.c har sluta vid sista av dess namn, strax före förlängningen.

Du kan söka Döp om kommando för param överallt i filnamnet. Du kan sedan ersätta den med parameter i alla fall.

En annan användning av ls kommandot visar oss vad som har hänt exakt. Huruvida sluta var i början eller i slutet av filnamnet. Du kan också ersätta den med en parameter.

Vi kan använda Perls metatecken för att rena beteendet hos det centrala uttrycket. Metatecken är tecknen som representerar sekvenser eller positioner för tecken. Till exempel

sudo dnf install prename
betyder start av en sträng, (.) betyder varje enskilt tecken (förutom från en ny linje),
sudo pacman -Syu perl-rename
betyder slutet på en sträng.

Vi använder också början på strängens metatecken (

ls *.prog
) för att begränsa vår sökning till början av filnamnen.

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

De filer vi bytte namn på listades tidigare. Vi kan också se att strängparametern är i början av tre filnamn och den ligger i slutet av ett av filnamnen.

Vår Döp om kommandot använder början av raden metatecken (^) före söktermparametern. Det förklarar att bara överväga söktermen att hitta om den är i början av filnamnet. Söksträngsparametern undviks om den finns någon annanstans i filnamnet.

Tittar vi med

ls sl*.c
kan vi sedan se att filnamnet har parametern vid sista av filnamnet har inte ändrats. Men de tre filnamnen har parametern vid början av deras namn där söksträngen har ersatts med det ersatta termvärdet.

De Döp om kraft ligger i Perls kraft.

Ser med grupperingar

Här är fallet där du förmodligen har filer med samma strängar i deras namn. De liknar inte exakt samma strängar, så du letar bara efter och substitution kan inte fungera här.

I det här exemplet använder vi

ls *.c rename 's/sl_//' *.c ls *.c
för att se vilka filer vi har som börjar med str. Det finns också två av dem, string.c och strangle.c. Vi kan också byta namn på båda strängarna efter att ha använt en metod som kallas en gruppering.

Mellanuttrycket av Döp om kommandot söker efter strängar inom filnamn med teckensekvensen stri eller stra. Här följs dessa sekvenser av ng. Alternativt kommer vår sökterm att leta efter sträng och konstigt. Substitutionstermin är smäll.

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

Efter att ha använt

ls *param*.c
en annan gång bekräftar att string.c har blivit en bang.c och strangle.c är nu bangle.c.

Använd byta namn på Command With Translations

De Döp om kommandot utför alla åtgärder på filnamn som kallas översättningar. Här är ett exempel på en översättning som tvingar en uppsättning filnamn till stora bokstäver.

I Döp om kommandot nedan meddelar att vi inte använder ett

rename 's/^parameter/value/' *.c
för att börja mittuttrycket använder vi
ls *param*.c
. Det förklarar att kommandot inte kan byta ut; vi utför en översättning.

Termen

ls value*.c
är ett Perl-uttryck. Det betyder att alla gemener i sekvensen från a till z. Men, termen
ls str*.c
representerar alla versaler i sekvensen från A till Z.

Det mellersta uttrycket i detta kommando kan omformuleras som om någon av små bokstäver från a till z finns i filnamnet. Den ersätter dem med motsvarande tecken från storleksordningen av stora bokstäver från A till Ö.

Om du vill tvinga filnamnen på alla .prg-filer till stora bokstäver använder du bara det här kommandot:

byta namn på 'y / a-z / A-Z /' * .prg

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

Kommandot

ls ban*.c
visa oss att alla .prg förlängningsfiler är nu i versaler. För att vara strikt noggranna är de inte .prg filer längre. Det är .PRG-filer. Se till att Linux är skiftlägeskänsligt.

Vi kan också vända det sista kommandot efter att ha återvänt till positionen för

ls *.PRG
och A-Z termer i mittuttrycket.

byt namn på “y / A-Z / a-z /” * .PRG

ls * .prg

Du kan inte lära dig Perl på fem minuter

Att ta tag i Perl är bra tid. Men för att börja använda tidsbesparande funktioner i Döp om kommando, ser du inte att ha mycket Perl-kunskap alls för att skörda stora fördelar med makten.

Slutsats:

Här handlar allt om 'Använd byta namn på Command On Linux'. Vilka är dina åsikter om det? Om du vill dela någon annan metod eller tips angående artikeln, låt oss veta det nedan. För ytterligare frågor och frågor, låt oss veta i kommentarfältet nedan!

Läs också: