Hur man Använder byt namn på Kommandot på Linux

0
1324
Fatmawati Achmad Zaenuri/Shutterstock.kom

Komma till rätta med filen byta namn på kraftpaket av Linux-världen och ge mv—och dig själv—en vila. Byt namn är flexibel, snabb, och ibland till och med enklare. Här är en tutorial på detta kraftpaket av ett kommando.

Vad är det för Fel Med mv?

Det är inget fel med mv . Kommandot gör ett bra jobb, och det finns på alla Linux-distributioner, i macOS, och i andra Unix-liknande operativsystem. Så det är alltid tillgängliga. Men ibland behöver man bara en bulldozer, inte en spade.

Mv kommandot har ett syfte i livet, och det är att flytta filer. Det är en lycklig bieffekt att den kan användas för att flytta en befintlig fil till en ny fil, med ett nytt namn. Nettoeffekten är att byta namn på filen, så att vi får vad vi vill. Men mv är inte en särskild fil byta namn på verktyg.

Byta namn på en Fil Med mv

Att använda mv för att byta namn på en fil typ mv, ett mellanslag, namnet på den fil, en plats, och det nya namnet som du vill att filen ska ha. Tryck sedan på Enter.

Du kan använda ls för att kontrollera att filen har ändrats.

mv oldfile.txt newfile.txt
ls *.txt

Byta namn på Flera Filer med mv

Det blir svårare när du vill byta namn på flera filer. mv har ingen förmåga att ta itu med att byta namn på flera filer. Du måste ta till med några fiffiga Bash tricks. Det är bra om du vet några medellång kvalitet command-line-fu, men komplexiteten i att byta namn på flera filer med mv står i stark kontrast till den enkel att använda mv för att byta namn på en fil.

Saker och ting eskalera snabbt.

Låt oss säga att vi har fått en katalog med en mängd filer i det, av olika typer. Några av dessa filer har en “.prog” förlängning. Vi vill byta namn på dem till kommandoraden, så att de har en “.prg” förlängning.

Hur gör vi tvista mv till att göra det för oss? Låt oss ta en titt på filerna.

ls *.prog -l

Här är ett sätt att göra det som inte utväg för att skriva en faktisk Bash-script-fil.

för f *.prog; göra mv — “$f” – “${f%.prog}.prg”

Har detta arbete? Låt oss kontrollera filer och se.

ls *.pr*

Så, ja, det fungerade. De är alla “.prg” filer nu, och det finns inga “.prog” – filer i den katalogen.

Vad Hände?

Vad gjorde att långa kommandot egentligen göra? Låt oss bryta ner det.

för f *.prog; göra mv — “$f” – “${f%.prog}.prg”

Den första delen börjar med en slinga som kommer att behandla varje “.prog” – fil i katalogen, i tur och ordning.

Nästa del säger vad behandlingen kommer att göra. Det är med hjälp av mv för att flytta varje fil till en ny fil. Den nya filen ska vara döpt med det ursprungliga filnamnet exklusive “.prog” – delen. En ny förlängning av “.prg” kommer att användas istället.

Det måste finnas ett Enklare Sätt

De flesta definitivt. Det är byt namn på kommandot.

att byta namn är inte en del av en standard-Linux-distribution, så du kommer att behöva installera det. Det har också ett annat namn i olika familjer av Linux-men alla fungerar på samma sätt. Du kommer bara att ersätta lämpligt kommando namn enligt Linux smak som du använder.

i Ubuntu och Debian-härledda distributioner du installera byta namn så här:

sudo apt-get install byta namn

I Fedora och RedHat-härledda distributioner du installera prename som denna. Notera den första “p”, som står för Perl.

sudo dnf installera prename

För att installera den i Manjaro Linux använda följande kommando. Observera att byta namn på kommandot heter perl-byt namn.

sudo pacman -Syu perl-byt namn

Låt oss Göra Det Igen

Och den här gången kommer vi att använda byta namn. Vi kommer att rulla tillbaka klockan så att vi har en uppsättning av “.prog” – filer.

ls *.prog

Låt oss nu använda följande kommando för att döpa om dem. Vi kommer då att kolla med ls om det fungerade. Kom ihåg att ersätta byta namn på ett kommando namn för din Linux om du inte använder Ubuntu eller Debian-härrör Linux.

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

Som fungerade, de är nu alla “.prg” filer, och det finns inga “.prog” – filer kvar i katalogen.

Vad Hände Den Här Gången?

Låt oss förklara lite magi, i tre delar.

Den första delen är kommandot namn ändra namn (eller prename eller perl-byta namn , för det andra distributioner).

Den sista delen är *.prog, som berättar att byta namn för att fungera på alla “.prog” – filer.

Den mellersta delen definierar det arbete som vi vill ska göras på varje filnamn. S betyder substitut. Den första terminen.prog) är vad som kommer att byta namn söka efter i varje filnamn och den andra termen (.prg) är vad det kommer att ersättas.

Den mellersta delen av kommandot, eller centrala uttryck, är ett Perl ‘reguljärt uttryck’, och det är det som ger byt namn på kommandot dess flexibilitet.

Ändra Andra Delar av ett Filnamn

Vi har ändrat filnamnstillägg så långt, låt oss ändra andra delar av filnamn.

I katalogen finns en hel del C-källkodsfiler. Alla filnamnen är prefixet “slang_”. Vi kan kontrollera detta med ls.

ls sl*.c

Vi kommer att ersätta alla förekomster av “slang_” med “sl_”. Formatet för kommandot är redan bekant för oss. Vi är bara att ändra söktermen, den ersätter sikt, och filtyp.

byt namn “s/slang_/sl_’ *.c

Denna gång vi är ute efter “.c-filer, och söka efter “slang_”. När “slang_” finns i ett filnamn det ersätts med “sl_”.

Vi kan se resultatet av det kommandot genom att upprepa kommandot ls från ovan med samma parametrar:

ls sl*.c

Radera en Del av ett Filnamn

Vi kan ta bort en del av ett filnamn genom att ersätta den sökterm med ingenting.

ls *.c
byt namn ” s/sl_//’ *.c
ls *.c

Vi kan se från ls-kommandot att vår “.c” – filer är alla markeras i listan med “sl_”. Låt oss bli av med det helt och hållet.

Byt namn på kommando följer samma format som tidigare. Vi kommer att vara ute efter “.c” – filer. Söktermen är “sl_”, men det är ingen ersättning sikt. Två bakåtlutande snedstreck utan något mellan dem betyder ingenting, en tom sträng.

byt namn kommer att behandla varje “.c” en fil i tur och ordning. Det kommer att söka efter “sl_” i filnamnet. Om det finns, kommer den att ersättas av något annat. Med andra ord, sökningen är borttagna.

Den andra användningen av ls-kommandot bekräftar att “sl_” prefix har tagits bort från alla “.c” – fil.

Begränsa Ändringar i vissa Delar av Filnamn

Låt oss använda ls för att titta på filer som har strängen “param” i sina filnamn. Då använder vi byter namn för att ersätta söksträngen med strängen “parameter”. Vi kommer att använda ls en gång till för att se effekten på byt namn på kommandot har haft på dessa filer.

ls *param*
byt namn “s/param/parameter’ *.c
ls *param*

Fyra filer finns att ha “param” i sina filnamn. param.c, param_one.c, och param_two.c alla har “param” i början av sitt namn. third_param.c har “param” i slutet av sitt namn, precis innan förlängningen.

Byt namn på kommando kommer att söka efter “param” överallt i filnamnet och ersätta den med “parameter” i alla fall.

Den andra användningen av ls-kommandot visar oss att det är precis vad som har hänt. Om “param” var i början eller i slutet av filnamnet, det har ersatts av “parameter.”

Vi kan använda Perl är metatecken att förfina beteendet i mitt uttryck. Metatecken är symboler som representerar positioner eller sekvenser av tecken. Till exempel, ^ betyder “början av en sträng,” $ betyder “slutet av sträng”, och . innebär att ett enda tecken (bortsett från en nyrad).

Vi kommer att använda för start av sträng metacharacter ( ^ ) för att begränsa vår sökning till början av filnamnen.

ls *param*.c
rename ‘s/^parameter/värde/’ *.c
ls *param*.c
ls-värde*.c

De filer vi bytt namn tidigare är noterade, och vi kan se strängen “parameter” är i början av tre filnamn och det är på slutet av ett filnamn.

Våra byt namn på kommandot använder början av raden (^) metacharacter innan söktermen “parameter.” Här berättar byta namn till bara tänka söktermen att ha funnit om det är i början av filnamnet. Söksträngen “parameter” kommer att ignoreras om det är någon annanstans i filnamnet.

Kontrollera med ls, kan vi se att de filnamn som hade “parameter” i slutet av filnamnet inte har ändrats, men de tre filnamn som hade “parameter” i början av deras namn har haft söksträngen ersättas med substitut begreppet “värde”.

Kraften i att byta namn ligger i kraften av Perl. All makt i Perl är på ditt förfogande.

Söker Med Grupperingar

byt namn har ännu fler trick i rockärmen. Låt oss betrakta fallet där du har kanske filer med liknande strängar i deras namn. De är inte exakt samma strängar, så en enkel sökning och ersättning kommer inte att fungera här.

I detta exempel ska vi använda ls för att kontrollera vilka filer som vi har att börja med “str”. Det finns två av dem, string.c och strypa.c. Vi kan byta namn på båda strängarna på en gång med hjälp av en teknik som kallas gruppering.

Det centrala uttrycket för denna byt namn på kommandot kommer att söka efter strängar i filnamn som har karaktär sekvens “stri” eller “l” där dessa sekvenser är omedelbart följt av “ng”. Med andra ord, vår sökmotor sikt kommer att leta efter “string” och “strang”. Ersättning termen är “bang”.

str ls*.c
byt namn ” s/(stri|stra)ng/bang/’ *.c
ls ban*.c

Med hjälp av ls en andra gång bekräftar att strängen.c har blivit bang.c och strypa.c är nu armband.c.

Med hjälp av Översättningar Med byta namn

Byt namn på kommandot kan utföra åtgärder på filnamn som kallas översättningar. Ett enkelt exempel på en översättning skulle vara att tvinga en uppsättning av filnamn till gemener.

På byt namn på kommandot nedan observera att vi inte använder en s/ för att starta den centrala uttryck, vi använder y/. Här berättar byta namn, vi är inte utföra en substitution. vi utför en översättning.

A-z sikt är ett Perl-uttryck som betyder alla små tecken i följd från a till ö. På samma sätt är A-Z står för alla versaler i följd från A till ö.

Den centrala uttryck i detta kommando skulle kunna formuleras som: “om någon av de små bokstäver från a till z finns i filnamnet och ersätta dem med motsvarande tecken från den sekvens av versala tecken från A till ö.”

För att tvinga filnamn för alla “.prg” filer till versaler, använd detta kommando:

byt namn ‘y/a-z/A-Z -/’*.prg

ls *.PRG

Ls-kommandot visar oss att alla “.prg” filnamnen är nu i versaler. I själva verket, för att vara helt korrekt, så är de inte “.prg” filer längre. De är “.PRG” filer. Linux är skiftlägeskänsligt.

Vi kan vända på den sista kommandot genom att vända position i a-z och a-Z termer i centrala uttryck.

byt namn ‘y/A-Z/a-z -/’*.PRG

ls *.prg

Du (Wo|Göra)n inte Lära sig Perl i Fem Minuter

Att komma till rätta med Perl är väl använd tid. Men till att börja med tidsbesparande funktioner på byt namn på kommandot, du behöver inte ha mycket Perl-kunskaper alls för att få stora fördelar i effekt, enkelhet och tid.

LÄS NÄSTA

  • “Hur man kan Stoppa Folk från att Stjäla Dina Paket
  • “Varför Streaming-Tjänster tar Extra Betalt för HD och 4K?
  • “Hur Stream UFC 238 Cejudo vs. Moraes Online
  • “Hur mata in Kaomoji på Windows 10 (╯°□°)╯︵ ┻━┻
  • “Hur att Titta på den 2019 FIFA Women’ s World Cup Online (Utan Kabel)