omdøbning af filer på Linuk – systemer håndteres normalt af kommandoen mv
(Flyt). Syntaksen er bare mv old.txt new.txt
. Simpelt nok, men hvad nu hvis vi har flere filer, der skal omdøbes på en gang, endda hundredvis af dem? Standard mv-værktøjet kan ikke håndtere omdøbning af mere end en fil, medmindre vi laver lidt scripting. Der er også andre værktøjer, vi kan installere for at løse problemet, som rename
og mmv
.
i denne vejledning viser vi dig, hvordan du bruger kommandoen mv
samt værktøjerne rename
og mmv
til at omdøbe flere filer på din distro. Vi gennemgår flere eksempler, så du kan forstå syntaksen og hvordan du bruger hver metode.
i denne tutorial vil du lære:
- sådan omdøbes flere filer på en gang med mv-kommando
- Sådan installeres Omdøb på større linukdistroer
- Sådan installeres mmv på større linukdistroer
- Sådan bruges mmv, gennem kommandoeksempler
- Sådan bruges Omdøb, gennem kommandoeksempler
Kategori | krav, konventioner eller programversion Brugt |
---|---|
System | alle |
program | mv, Omdøb, mmv |
andet | privilegeret adgang til dit system som root eller via kommandoen sudo . |
konventioner | # – kræver, at givne kommandoer udføres med root-rettigheder enten direkte som root-bruger eller ved brug af sudo kommando$ – kræver, at givne kommandoer udføres som en almindelig ikke-privilegeret bruger |
Omdøb flere filer på en gang med mv-kommando
omdøbning af flere filer med mv-kommandoen er lettere, hvis du kender en lille smule Bash-scripting. Se på nogle af eksemplerne nedenfor for at se nogle almindelige anvendelser med denne metode.
- følgende kommando vil tilføje en .filtypenavn til alle filer i din nuværende arbejdsmappe.
$ for i in $( ls ); do mv $i $i.txt; done
- for at fjerne en filtypenavn fra alle filer kan du bruge denne kommando.
$ for i in $( ls *.txt ); do mv $i ${i%.*}; done
- vi kan også ændre filtypen for hver fil. Følgende kommando vil ændre alle filer med .log udvidelse til .TST.
$ for i in *.log; do mv -- "$i" "${i%.log}.txt"; done
- du kan også bruge kommandoen find sammen med
-exec
til at omdøbe flere filer på en gang. Denne kommando vil tilføje .bak til hver fil, der begynder med mønsteret”file”.$ find . -type f -name 'file*' -print0 | xargs --null -I{} mv {} {}.bak
- denne kommando bruger find og
-exec
mulighed for at tilføje “_backup” til alle filer, der slutter i .udvidelse.$ find . -name "*.txt" -exec mv {} {}_backup \;
- vi kan også gøre det samme. Denne kommando accepterer standardindtastning fra kommandoen
ls
og bruger derefter “_backup” til alle filer, der slutter i .udvidelse.$ ls *.txt | xargs -I{} mv {} {}_backup
- for at ændre alle filer med .tekst i den nuværende mappe for kun at have små bogstaver, vil denne kommando gøre jobbet.
$ for i in `ls *.txt`; do mv "$i" "`echo $i | tr '' ''`"; done
fordelen ved denne metode er, at vi ikke har brug for noget ekstra program – vi bruger bare det indbyggede mv-værktøj, og nogle gange kombineret med Ls, find eller HS. Men som vi har set i disse eksempler, kan det være ret komplekst at gøre noget simpelt som at omdøbe et par filer. Tjek nogle af de andre metoder nedenfor for at se nogle mere praktiske muligheder, der kræver installation.
installer Omdøb utility
din distro har muligvis allerede rename
installeret som standard. Bare hvis det ikke allerede er installeret, kan du bruge den relevante kommando nedenfor til at installere den via dit systems pakkehåndtering.
Sådan installeres Omdøb på Ubuntu, Debian og Mint:
$ sudo apt install rename
Sådan installeres Omdøb på CentOS, Fedora og Red Hat:
$ sudo dnf install prename
for at installere Omdøb på Arch Lines og Manjaro:
$ sudo pacman -S perl-rename
Omdøb kommandoeksempler
kommandoen rename
accepterer perl-udtryk for at udføre den faktiske omdøbning. Hvis du allerede er bekendt med denne syntaks, vil Omdøb være meget nem at bruge. Hvis ikke, skal du ikke bekymre dig, vi har nogle eksempler nedenfor, der hjælper dig med at få fat i det.
her har vi samlet nogle af de mest almindelige scenarier, som du skal omdøbe flere filer på en gang. Disse kommandoer antager, at de filer, du ønsker at omdøbe, er i din nuværende arbejdsmappe. Du kan altid angive stien til andre mapper, hvis du ønsker det.
der er et par muligheder, du kan bruge med rename
. Indstillingen -n
viser dig, hvilke ændringer omdøbning vil foretage, uden faktisk at foretage ændringerne. Dette hjælper dig med at undgå uønskede ændringer. Indstillingen -v
(verbose) udskriver navnene på filer, der er blevet omdøbt.
- denne kommando omdøber store filer til små bogstaver.
$ rename 'y/A-Z/a-z/' *
eller, for at konvertere små bogstaver til store bogstaver:
$ rename 'y/a-z/A-Z/' *
- hvis du vil ændre udvidelsen af en masse filer, skal du bruge følgende syntaks. Dette særlige eksempel vil konvertere .log filer til .tekst filer.
$ rename 's/\.log$/\.txt/' *.log
- for at aktivere det første bogstav i hvert filnavn skal du bruge følgende kommando.
$ rename 's/\b(\w)/\U/g' *
- udfør denne kommando for at fjerne alle tomme mellemrum fra filnavne.
$ rename "s/ *//g" *
eller, for at erstatte mellemrum med understregninger:
$ rename 's/\s+/_/g' *
- hvis du vil fjerne en filtypenavn fra en masse filer, skal du bruge følgende syntaks. Dette eksempel vil fjerne .bak udvidelse.
$ rename 's/\.bak$//' *.bak
installer mmv utility
du kan bruge den relevante kommando nedenfor til at installere mmv gennem dit systems pakkehåndtering.
Sådan installeres mmv på Ubuntu, Debian og Mint:
$ sudo apt install mmv
Sådan installeres mmv på CentOS, Fedora og Red Hat:
$ sudo dnf install mmv
for at installere mmv på Arch Lines og Manjaro:
$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si
mmv kommandoeksempler
det mest attraktive træk ved mmv er dets evne til nemt at omdøbe mange filer ved at acceptere jokertegn i kommandoen. Dette giver dig mulighed for nemt at tilføje eller fjerne bestemte mønstre fra filnavne eller endda arrangere tekst inden for navnene. Tjek nogle af eksemplerne nedenfor for at lære syntaksen for mmv-værktøjet, og se nogle af de mest almindelige kommandoer, som du måske finder dig selv i at køre med det. Husk, at du kan bruge -n
med mmv til at forhåndsvise ændringer.
- Brug dette eksempel til at ændre filtypen på en flok filer. Denne kommando ændrer alle filer med udvidelse .htm til .HTML.
$ mmv '*.htm' '#1.html'
- denne kommando erstatter den første forekomst af “foo” med “bar” i alle filnavne.
$ mmv '*foo*' '#1bar#2'
- følgende kommando giver dig en ide om, hvordan du kan bruge mmv til at omarrangere dele af et filnavn. Dette eksempel vil tage filer som
access.log-dbserver
ogrejected.log-webserver
og omdøbe dem til henholdsvisaccess-dbserver.log
ogrejected-webserver.log
. For at dette skal fungere, skal vi bare have et ensartet mønster, såsom bindestreg og periode i dette tilfælde.
$ mmv '*.log-*' '#1-#2.log'
- skift alle filnavne til små bogstaver ved hjælp af denne kommando.
$ mmv '*' '#l1'
- omvendt skal du ændre filnavne til alle store bogstaver med denne.
$ mmv '*' '#u1'
Afsluttende tanker
i denne vejledning lærte vi flere forskellige metoder til at omdøbe flere filer samtidigt. Vi så også et væld af kommandolinjeeksempler, der kan dække mange forskellige scenarier eller let tilpasses til at passe til lignende situationer. Bulk omdøbning kan ske gennem indfødte bash hjælpeprogrammer som mv, ls, og find, eller vi kan installere Mmv eller omdøbe hjælpeprogrammet for at gøre vores liv lidt lettere. Hver metode har deres styrker og svagheder, så brug den, du tror, vil være mest praktisk for dig.