Android

Hvordan endre navn på filer og kataloger i Linux

Connectrix Brocade B-Series: How to Enable HTTPS Webtools GUI Access on Brocade Switches

Connectrix Brocade B-Series: How to Enable HTTPS Webtools GUI Access on Brocade Switches

Innholdsfortegnelse:

Anonim

Å gi nytt navn til filer og kataloger er en av de mest grunnleggende oppgavene du ofte trenger å utføre på et Linux-system.

Å gi nytt navn til en enkelt fil er enkelt, men å gi nytt navn til flere filer samtidig kan være en utfordring, spesielt for brukere som er ny på Linux. Du kan gi nytt navn til filer ved å bruke en GUI-filbehandler eller via kommandolinjeterminalen.

I denne opplæringen vil vi vise deg hvordan du bruker mv og rename kommandoene til å gi nytt navn til filer og kataloger.

Gi nytt navn til filer med mv Command

Kommandoen mv (kort fra flytting) brukes til å gi nytt navn til eller flytte filer fra ett sted til et annet. Syntaks for mv kommandoen er som følger:

mv source destination

source kan være en eller flere filer eller kataloger, og destination kan være en enkelt fil eller katalog.

  • Hvis du spesifiserer flere filer som source , må destination være en katalog. I dette tilfellet blir source flyttet til målkatalogen. Hvis du spesifiserer en enkelt fil som source , og destination er en eksisterende katalog, blir filen flyttet til den angitte katalogen. For å gi nytt navn til en fil må du spesifisere en enkelt fil som source , og enkelt fil som destination .

For å endre navn på filen file1.txt som file2.txt , vil du for eksempel kjøre:

mv file1.txt file2.txt

Gi nytt navn til flere filer med mv Command

mv kommandoen kan bare gi nytt navn til en fil om gangen, men den kan brukes sammen med andre kommandoer, for eksempel find eller inne i bash for eller mens løkker for å gi nytt navn til flere filer.

Følgende eksempel viser hvordan du bruker Bash for loop til å gi nytt navn til alle .html filer i gjeldende katalog ved å endre .html utvidelsen til .php .

for f in *.html; do mv -- "$f" "${f%.html}.php" done

La oss analysere koden linje for linje:

  • Den første linjen oppretter en for loop og itereres gjennom en liste over alle filer som er kantet med .html . Den andre linjen gjelder for hvert element i listen og flytter filen til en ny som erstatter .html med .php . Delen ${file%.html} bruker utvidelsen av shell-parameteren til å fjerne .html delen fra filnavnet.done indikerer slutten på loop-segmentet.

Vi kan også bruke mv kommandoen i kombinasjon med find å oppnå det samme som ovenfor.

find. -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' ;

-exec kommandoen overfører alle filer som slutter med .html i gjeldende katalog til mv kommandoen én etter én ved å bruke -exec bryteren. Strengen {} er navnet på filen som for øyeblikket behandles.

Som du kan se av eksemplene over, er det ikke en lett oppgave å gi nytt navn til flere filer ved å bruke mv kommandoen, ettersom det krever god kunnskap om Bash-skripting.

Gi nytt navn til filer med nytt navn på kommando

rename kommandoen brukes til å gi nytt navn til flere filer. Denne kommandoen er mer avansert enn mv da den krever litt grunnleggende kunnskaper om vanlige uttrykk.

Det er to versjoner av rename kommandoen med forskjellige syntaks. I denne opplæringen bruker vi perl-versjonen av rename . Hvis du ikke har denne versjonen installert på systemet ditt, kan du enkelt installere den ved å bruke pakkehåndtereren til distribusjonen.

  • Installer nytt navn på Ubuntu og Debian

    sudo apt install rename

    Installer nytt navn på CentOS og Fedora

    sudo yum install prename

    Installer nytt navn på Arch Linux

    yay perl-rename ## or yaourt -S perl-rename

Syntaks for rename kommando er som følger:

rename perlexpr files

rename kommandoen vil gi nytt navn til alle files henhold til det spesifiserte perlexpr regulære uttrykket. Du kan om perl vanlige uttrykk her.

For eksempel vil følgende kommando endre alle filene med utvidelsen .html til .php :

rename 's/.html/.php/' *.html

Du kan bruke -n argumentet til å skrive ut navn på filer som skal gi nytt navn, uten å gi nytt navn til dem.

rename -n 's/.html/.php/' *.html

Utgangen vil se slik ut:

rename(file-90.html, file-90.php) rename(file-91.html, file-91.php) rename(file-92.html, file-92.php) rename(file-93.html, file-93.php) rename(file-94.html, file-94.php)

Som standard vil ikke nytt navn-kommandoen overskrive eksisterende filer. Pass på -f argumentet for å la eksisterende filer skrives over.

rename -f 's/.html/.php/' *.html

Nedenfor er noen få vanligere eksempler på hvordan du bruker navnet på kommandoen:

  • Erstatt mellomrom i filnavn med understrek

    rename 'y/ /_/' *

    Konverter filnavn til små bokstaver

    rename 'y/AZ/az/' *

    Konverter filnavn til store bokstaver

    rename 'y/az/AZ/' *

Konklusjon

Nå skal du ha en god forståelse av hvordan du bruker mv og rename kommandoene til å gi nytt navn til filer. Selvfølgelig er det andre kommandoer for å gi nytt navn til filer i Linux som mmv . Nye Linux-brukere som er skremt av kommandolinjen, kan bruke GUI-batch-omdøpsverktøy, for eksempel Métamorphose.

gi nytt navn til mv-terminalen