1 tammikuun, 2022

Kuinka nimetä useita tiedostoja kerralla Linuxissa

useiden tiedostojen uudelleennimeäminen Linuxissa kuulostaa yksinkertaiselta tehtävältä, mutta siitä voi tulla melko monimutkainen. On mahdollista nimetä tiedostoja uudelleen massoittain mv – komennolla ja hieman bash-skriptausta käyttäen, tai käyttää mmv ja rename apuohjelmia – joita ei ole tavallisesti asennettu oletusarvoisesti. Tässä oppaassa näytämme erilaisia esimerkkejä useiden tiedostojen uudelleennimeämisestä kerralla Linux-komentoriviltä.

tämän oppaan esimerkkien avulla kaikki nykyisen työhakemiston tiedostot nimetään uudelleen. Useimmat näistä komennoista voidaan helposti virittää toimimaan rekursiivisesti. Huomaa, että jotkin esimerkit nimeävät myös hakemistoja uudelleen.

nimeä useita tiedostoja uudelleen MV

mv – komento on Linuxin oletusosa ja sitä voidaan käyttää useiden tiedostojen uudelleennimeämiseen, mutta tehtävän suorittamiseen tarvitaan hieman skriptausta. Jotkut esimerkit perustuvat myös muihin Linux-oletusapuohjelmiin, kuten ls, find, xargs, jne.

Esimerkki 1. Muuta kaikki tiedostonimet pieniksi kirjaimiksi.

$ for f in `ls | grep `; do mv "$f" "`echo $f | tr 'A-Z' 'a-z'`"; done

Esimerkki 2. Muuta kaikki tiedostonimet isoiksi kirjaimiksi.

$ for f in `ls | grep `; do mv "$f" "`echo $f | tr 'a-z' 'A-Z'`"; done

esimerkki 3. Muuta kaikki tiedostopäätteet .jpeg: stä .jpg: iin.

$ for f in *.jpeg; do mv "$f" "${f%.jpeg}.jpg"; done

esimerkki 4. Poista .bak tiedostopääte kaikista tiedostoista.

$ for f in `ls *.bak`; do mv $f ${f%.*}; done

esimerkki 5. Lisää .bak tiedostopääte kaikkiin tiedostoihin.

$ for f in `ls`; do mv $f $f.bak; done

esimerkki 6. Käytä xargs liittääksesi ”_backup” jokaiseen tiedostoon.

$ ls * | xargs -I{} mv {} {}_backup

esimerkki 7. Käytä komentoja find, sed ja mv muuttaaksesi kaikki tiedostot pieniksi kirjaimiksi.

$ find . -maxdepth 1 -type f -name '**'|sed -n 's/\(.*\/\)\(.*\)/mv -n -v -T  \L/p'|sh

esimerkki 8. Käytä komentoja find -exec ja mv liittääksesi ”_backup” jokaiseen .log – päätteiseen tiedostoon.

$ find . -type f -name "*.log" -exec mv {} {}_backup \;

esimerkki 9. Samanlainen kuin edellisessä esimerkissä, mutta korvaa Findin -exec vaihtoehto xargs liittämällä ”_backup” jokaiseen .log – päätteiseen tiedostoon.

$ find . -type f -name '*log' -print0 | xargs --null -I{} mv {} {}_backup

esimerkki 10. Korvaa kuvio jokaisessa tiedostossa käyttämällä mv ja sed. Tämä korvaa ”IMG”: n” lomalla ” jokaisessa .jpg – tiedostossa.

$ for f in *.jpg; do mv "$f" "`echo "$f" | sed s/IMG/Vacation/`"; done

esimerkki 11. Lisää nykyinen aikaleima kaikkiin tiedostoihin, jotka päättyvät .log. Tällöin esimerkiksi access.log muuttuisi access_20210418040151.log.

$ for f in *.log; do mv "$f" "${f%.log}"_`date +%Y%m%d%H%M%S`.log; done

Uudelleennimeä useita tiedostoja uudelleennimetä

uudelleennimeämisapuohjelma tekee bulk-uudelleennimeämistehtävistämme hieman helpompia, mutta apuohjelmaa ei ole aina asennettu oletusarvoisesti. Asenna se järjestelmäsi paketinhallinnan avulla alla olevalla komennolla.

Ubuntu, Debian ja Linux Mint:

$ sudo apt install rename

Fedora, AlmaLinux, CentOS ja RHEL:

$ sudo dnf install prename

Arch Linux ja Manjaro:

$ sudo pacman -S perl-rename
käytä -n – asetusta rename – komennoissasi, jos haluat esikatsella muutoksia ennen niiden tekemistä.

Esimerkki 1. Muuta kaikki tiedostonimet pieniksi kirjaimiksi.

$ rename 'y/A-Z/a-z/' *

Esimerkki 2. Muuta kaikki tiedostonimet isoiksi kirjaimiksi.

$ rename 'y/a-z/A-Z/' *

esimerkki 3. Poista .bak – pääte kaikista tiedostoista.

$ rename 's/\.bak$//' *.bak

esimerkki 4. Muuta kaikkien .jpeg – tiedostojen laajennus muotoon .jpg.

$ rename 's/\.jpeg/\.jpg/' *.jpeg

esimerkki 5. Muuta kaikkien tiedostojen pääte .JPG pieniksi kirjaimiksi .jpg.

$ rename 's/\.JPG/\.jpg/' *.JPG

esimerkki 6. Poista tyhjät välilyönnit kaikista tiedostonimistä.

$ rename "s/ *//g" *

esimerkki 7. Korvaa tyhjät kohdat alaviivoilla kaikille tiedostonimille.

$ rename 's/\s+/_/g' *

esimerkki 8. Kirjoita tiedostonimien ensimmäinen kirjain isolla alkukirjaimella.

$ rename 's/\b(\w)/\U/g' *

esimerkki 9. Korvaa kuvio jokaisessa tiedostonimessä. Tämä komento korvaa ”IMG” – komennon ”Vacation” – komennolla jokaisessa .jpg – tiedostossa.

$ rename 's/IMG/Vacation/' *.jpg

esimerkki 10. Poista osa tiedostonimestä. Tämä komento poistaa ”IMG_” jokaisesta .jpg – tiedostosta.

$ rename 's/IMG_//' *.jpg

esimerkki 11. Lisää .bak – laajennus kaikkiin tiedostoihin.

$ rename 's/(.*)/.bak/' *

nimeä useita tiedostoja mmv: llä

mmv-apuohjelma on erinomainen tiedostojen uudelleennimeämisessä, joka perustuu kaavoihin, kuten merkkijonojen poistamiseen tai lisäämiseen kaikkiin tiedostoihin, tai tiedostojen nimien osien uudelleen järjestämiseen. Sitä ei yleensä asenneta oletusarvoisesti, mutta voit käyttää alla olevaa sopivaa komentoa mmv: n asentamiseen järjestelmäsi paketinhallinnan avulla.

Ubuntu, Debian ja Linux Mint:

$ sudo apt install mmv

Fedora, AlmaLinux, CentOS ja RHEL:

$ sudo dnf install mmv

Arch Linux ja Manjaro (asentaa AUR):

$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si
käytä -n – asetusta mmv – komennoissasi, jos haluat esikatsella muutoksia ennen niiden tekemistä.

Esimerkki 1. Muuta kaikkien .jpeg – tiedostojen laajennus muotoon .jpg.

$ mmv '*.jpeg' '#1.jpg'

Esimerkki 2. Muuta kaikki tiedostonimet pieniksi kirjaimiksi.

$ mmv '*' '#l1'

esimerkki 3. Muuta kaikki tiedostonimet isoiksi kirjaimiksi.

$ mmv '*' '#u1'

esimerkki 4. Järjestä tiedostonimen osat uudelleen. Tämä komento muuttaa musiikkitiedostoja, joiden kuvio on Song-Artist.mp3 Artist-Song.mp3.

$ mmv '*-*.mp3' '#2-#1.mp3'

esimerkki 5. Korvaa ensimmäinen esiintyminen ” IMG ”” loma ” kaikissa tiedostonimissä.

$ mmv '*IMG*' '#1Vacation#2'

esimerkki 6. Lisää etuliite jokaiseen tiedostonimeen. Tämä komento edeltää ”backup_” jokaiseen .log – tiedostoon.

$ mmv '*.log' 'backup_#1.log'

esimerkki 7. Lisää loppuliite jokaiseen tiedostonimeen. Tämä komento liittää ”_backup” jokaiseen .log – tiedostoon.

$ mmv '*.log' '#1.log_backup'

esimerkki 8. Poista etuliite ”IMG_” kaikista .jpg tiedostoista.

$ mmv 'IMG_*.jpg' '#1'

esimerkki 9. Poista ”_oleta” – pääte kaikista tiedostoista.

$ mmv '*_old' '#1'

Tiedostojen uudelleen nimeäminen GUI: n kautta

jos komentorivi ei ole oikeasti sinun juttusi, on mahdollista nimetä useita tiedostoja kerralla GUI: n kautta. Yksi parhaista työvälineistä on Thunarin mukana tuleva Bulk Rename-sovellus.

Thunar on Xfce: n oletustiedostoselain, mutta sen voi asentaa riippumatta siitä, mitä työpöytäympäristöä käyttää. Jos käytät jo Xfce: tä tai Thunaria, Bulk Rename on jo osa järjestelmääsi. Muussa tapauksessa asenna se järjestelmäsi paketinhallinnan avulla alla olevalla komennolla.

Ubuntu, Debian ja Linux Mint:

$ sudo apt install thunar

Fedora, AlmaLinux, CentOS ja RHEL:

$ sudo dnf install thunar

Arch Linux ja Manjaro:

$ sudo pacman -S thunar

Vaihe 1. Kun Thunar on asennettu, Etsi ja avaa Bulk-nimeä apuohjelma.

avataan Irtonumeroapuohjelma

Vaihe 2. Napsauta plus-merkkiä lisätäksesi tiedostoja, jotka haluat nimetä uudelleen.

Tiedostolistan lisääminen Irtonumerohakemukseen

Vaihe 3. Valitse vaihtoehtojen luettelosta, mitä haluat tehdä tiedostoille. Voit muuttaa ne kaikki isoiksi tai pieniksi kirjaimiksi, lisätä päivämäärän ja kellonajan, lisätä tekstin tiettyyn kohtaan, lisätä automaattisen numeroinnin, korvata merkkejä tai etsiä ja korvata tiettyjä kuvioita muun muassa tiedostonimissä. Alla olevassa esimerkissä olemme liittäneet .txt – tiedostopääteen kaikkiin tiedostoihimme.

Bulk Rename tool, jossa näkyvät vanhat nimet ja uudet tiedostonimet

Vaihe 4. Kun olet tyytyväinen esikatsellut Nimenmuutokset” uusi nimi ”sarake, klikkaa” nimeä tiedostot ” suorittaa irtotavarana uudelleennimeäminen.

kokoomanimennystyön Viimeisteleminen

useiden tiedostojen uudelleennimeäminen WSL: ssä

jos käytät Windows-alijärjestelmää Linuxissa, jotkin yllä olevat komennot eivät toimi, erityisesti ne, jotka edellyttävät tiedostojen muuttamista pieniksi tai isoiksi. Windows on kirjainherkkä, joten se pitää File.txt, file.txt ja FILE.txt kaikkia samana tiedostona.

saat yksinkertaisesti virheen, että tiedosto on jo olemassa, jos yrität nimetä FILE.txt file.txt. Välttääksesi tämän ongelman, käytä jotakin seuraavista esimerkeistä.

Esimerkki 1. Muuta kaikkien tiedostojen suuraakkoset .JPG pieniksi kirjaimiksi .jpg (käyttäen oletusapuohjelmia).

$ for f in *.JPG; do mv "$f" "${f%.JPG}.jpgaux"; done && for f in *.jpgaux; do mv "$f" "${f%.jpgaux}.jpg"; done

Esimerkki 2. Muuta isojen sanojen laajennus .JPG pieniksi kirjaimiksi .jpg kaikille tiedostoille (uudelleennimeä apuohjelma käyttäen).

$ rename 's/\.JPG$/\.jpgaux/' *.JPG && rename 's/\.jpgaux$/\.jpg/' *.jpgaux

esimerkki 3. Muuta isojen sanojen laajennus .JPG pieniksi kirjaimiksi .jpg kaikille tiedostoille (käyttäen mmv-apuohjelmaa).

$ mmv '*.JPG' '#1.jpgaux' && mmv '*.jpgaux' '#1.jpg'

esimerkki 4. Muuta kaikki tiedostonimet pieniksi kirjaimiksi (käyttämällä oletusapuohjelmia).

$ for f in `ls | grep `; do mv "$f" "`echo $f.aux | tr 'A-Z' 'a-z'`"; done && for f in `ls *.aux`; do mv $f ${f%.*}; done

esimerkki 5. Muuta kaikki tiedostonimet pieniksi kirjaimiksi (käyttäen mmv-apuohjelmaa).

$ mmv '*' '#l1.aux' && mmv '*.aux' '#1'

Conclusion

on mahdollista käyttää oletusarvoisia bash-apuohjelmia kaikkiin bulk-uudelleennimeämisiin Linuxissa, mutta uudelleennimeämiset ja mmv-työkalut tekevät siitä paljon helpompaa. Voimme myös käyttää Thunarin Bulk Rename-sovellusta, Kun haluamme käyttää GUI: ta komentorivin yli. Tämän oppaan esimerkit kattavat laajan valikoiman uudelleennimeämiskenaarioita, ja ne voidaan helposti sovittaa muihin tarpeisiin.

Vastaa

Sähköpostiosoitettasi ei julkaista.