január 1, 2022

több fájl átnevezése egyszerre Linuxon

több fájl átnevezése Linuxon egyszerű feladatnak tűnik, de meglehetősen bonyolult lehet. Lehetőség van a fájlok tömeges átnevezésére a mv paranccsal és egy kis bash parancsfájllal, vagy használhatja a mmv és rename segédprogramokat – amelyek alapértelmezés szerint nincsenek telepítve. Ebben az útmutatóban különféle példákat mutatunk be több fájl átnevezésére egyszerre a Linux parancssorból.

az útmutató példái a jelenlegi munkakönyvtár összes fájljának átnevezésére szolgálnak. A legtöbb ilyen parancsok könnyen csípett dolgozni rekurzívan. Vegye figyelembe, hogy néhány példa átnevezi a könyvtárakat is.

több fájl átnevezése MV

a mv parancs a Linux alapértelmezett része, és több fájl átnevezésére is használható, de a feladat elvégzéséhez egy kis szkript szükséges. Néhány példa más alapértelmezett Linux segédprogramokra is támaszkodik, például ls, find, xargs, stb.

példa 1. Módosítsa az összes fájlnevet kisbetűre.

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

2.példa. Módosítsa az összes fájlnevet nagybetűre.

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

3.példa. Módosítsa az összes fájlkiterjesztést .jpeg – ről .jpg – re.

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

4.példa. Távolítsa el a .bak fájlkiterjesztést az összes fájlból.

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

5.példa. Adjon hozzá egy .bak fájlkiterjesztést az összes fájlhoz.

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

6.példa. A xargs használatával minden fájlhoz hozzáfűzheti a “_backup” szót.

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

7.példa. Használja a find, sed és mv parancsokat, hogy az összes fájlt kisbetűre változtassa.

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

8.példa. Használja a find -exec és mv parancsokat a “_backup” hozzáfűz minden .log kiterjesztésű fájlhoz.

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

9.példa. Hasonló az előző példához, de cserélje le a find -exec opcióját xargs – re, hogy a “_backup” – ot minden .log kiterjesztésű fájlhoz csatolja.

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

10.példa. Cserélje ki a mintát minden fájlban a mv és a sedhasználatával. Ez minden .jpg fájlban az “IMG” – et “Vacation” – re cseréli.

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

példa 11. Adja hozzá az aktuális időbélyeget az összes .log végződésű fájlhoz. Ez egy access.log fájlt access_20210418040151.log – ra változtat.

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

több fájl átnevezése

az átnevezés segédprogram megkönnyíti a tömeges átnevezési feladatokat, de a segédprogram alapértelmezés szerint nem mindig telepítve van. Használja az alábbi megfelelő parancsot a rendszer csomagkezelőjével történő telepítéshez.

Ubuntu, Debian és Linux Mint:

$ sudo apt install rename

Fedora, AlmaLinux, CentOS és RHEL:

$ sudo dnf install prename

Arch Linux és Manjaro:

$ sudo pacman -S perl-rename
használja a -n opciót a rename parancsokban, ha meg szeretné tekinteni a módosításokat, mielőtt elvégezné őket.

1. példa. Módosítsa az összes fájlnevet kisbetűre.

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

2.példa. Módosítsa az összes fájlnevet nagybetűre.

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

3.példa. Távolítsa el a .bak kiterjesztést az összes fájlból.

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

4.példa. Módosítsa az összes .jpeg fájl kiterjesztését .jpgértékre.

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

5.példa. Módosítsa a .JPG nagybetűs kiterjesztést kisbetűre .jpg minden fájl esetében.

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

példa 6. Távolítsa el az üres helyeket az összes fájlnévből.

$ rename "s/ *//g" *

7.példa. Cserélje ki az üres szóközöket aláhúzással az összes fájlnévre.

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

8.példa. Nagybetűvel írja be az összes fájlnév első betűjét.

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

9.példa. Cserélje ki a mintát minden fájlnévben. Ez a parancs minden .jpg fájlban az “IMG” – et “Vacation” – re cseréli.

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

10.példa. Törölje a fájlnév egy részét. Ez a parancs eltávolítja az “IMG_” – t minden .jpg fájlból.

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

11.példa. Minden fájlhoz csatolja a .bak kiterjesztést.

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

több fájl átnevezése mmv

az mmv segédprogram kiválóan alkalmas a fájlok mintákon alapuló átnevezésére, például az összes fájl karakterláncának eltávolítására vagy hozzáadására, vagy a fájlnevek egyes részeinek átrendezésére. Alapértelmezés szerint általában nincs telepítve, de az alábbi megfelelő paranccsal telepítheti az mmv-t a rendszer csomagkezelőjével.

Ubuntu, Debian és Linux Mint:

$ sudo apt install mmv

Fedora, AlmaLinux, CentOS és RHEL:

$ sudo dnf install mmv

Arch Linux és Manjaro (telepítés az AUR-ból):

$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si
használja a -n opciót a mmv parancsokban, ha meg szeretné tekinteni a módosításokat, mielőtt elvégezné őket.

1. példa. Módosítsa az összes .jpeg fájl kiterjesztését .jpgértékre.

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

2.példa. Módosítsa az összes fájlnevet kisbetűre.

$ mmv '*' '#l1'

3.példa. Módosítsa az összes fájlnevet nagybetűre.

$ mmv '*' '#u1'

4.példa. A fájlnév egyes részeinek átrendezése. Ez a parancs a Song-Artist.mp3 mintával rendelkező zenefájlokat Artist-Song.mp3 – re változtatja.

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

5.példa. Cserélje ki az “IMG” első előfordulását “Vacation” – re az összes fájlnévben.

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

6.példa. Adjon előtagot minden fájlnévhez. Ez a parancs minden .log fájlba a “backup_” elé kerül.

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

7.példa. Adjon hozzá egy utótagot minden fájlnévhez. Ez a parancs hozzáfűzi a “_backup” – ot minden .log fájlhoz.

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

8.példa. Távolítsa el az” IMG_ ” előtagot az összes .jpg fájlból.

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

9.példa. Távolítsa el az” _old ” utótagot az összes fájlból.

$ mmv '*_old' '#1'

tömeges fájlok átnevezése GUI-n keresztül

ha a parancssor nem igazán a te dolgod, akkor egyszerre több fájlt is átnevezhet GUI-n keresztül. Az egyik legjobb eszköz a munka elvégzéséhez a Thunarhoz mellékelt tömeges átnevezési alkalmazás.

a Thunar az Xfce alapértelmezett fájlböngészője, de telepítheti, függetlenül attól, hogy milyen asztali környezetet használ. Ha már használja az Xfce – t vagy a Thunar-t, akkor a tömeges átnevezés már része a rendszernek. Ellenkező esetben használja az alábbi megfelelő parancsot a rendszer csomagkezelőjével történő telepítéshez.

Ubuntu, Debian és Linux Mint:

$ sudo apt install thunar

Fedora, AlmaLinux, CentOS és RHEL:

$ sudo dnf install thunar

Arch Linux és Manjaro:

$ sudo pacman -S thunar

1. lépés. A Thunar telepítése után keresse meg és nyissa meg a tömeges átnevezés segédprogramot.

a tömeges átnevezés segédprogram megnyitása

2.lépés. Kattintson a pluszjelre az átnevezni kívánt fájlok hozzáadásához.

fájlok listájának hozzáadása a tömeges átnevezés alkalmazáshoz

3.lépés. Válassza ki a lehetőségek listájából, hogy mit szeretne tenni a fájlokkal. Megváltoztathatja őket nagy-vagy kisbetűkre, hozzáadhat dátumot és időt, beszúrhat szöveget egy bizonyos pozícióba, hozzáadhat automatikus számozást, kicserélheti a karaktereket, vagy kereshet és kicserélhet bizonyos mintákat a fájlnevekben. Az alábbi példában egy .txt fájlkiterjesztést csatoltunk az összes fájlunkhoz.

tömeges átnevezés eszköz, amely bemutatja a régi neveket és az új fájlneveket

4.lépés. Ha elégedett az “új Név” oszlopban megtekintett névváltozásokkal, kattintson a “fájlok átnevezése” elemre a tömeges átnevezés végrehajtásához.

a tömeges átnevezési feladat véglegesítése

több fájl átnevezése WSL-en

Ha Windows alrendszert használ Linuxhoz, a fenti parancsok egy része nem fog működni, különösen azok, amelyek a fájlok kis-vagy nagybetűre történő megváltoztatásával járnak. A Windows nagybetűérzékeny, ezért a File.txt, file.txt és FILE.txt fájlokat mind ugyanannak a fájlnak tekinti.

akkor egyszerűen kap egy hibát, hogy a fájl már létezik, ha megpróbálja átnevezni FILE.txta file.txt. A probléma elkerülése érdekében használja az alábbi példák egyikét.

1. példa. Módosítsa a .JPG nagybetűs kiterjesztést kisbetűs .jpg fájlra (az alapértelmezett segédprogramok használatával).

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

2.példa. Módosítsa a .JPG nagybetűs kiterjesztést kisbetűre .jpg az összes fájlhoz (az átnevezés segédprogram használatával).

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

3.példa. Módosítsa a .JPG nagybetűs kiterjesztést kisbetűre .jpg minden fájlhoz (az mmv segédprogram használatával).

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

4.példa. Módosítsa az összes fájlnevet kisbetűre (az alapértelmezett segédprogramok használatával).

$ 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

5.példa. Módosítsa az összes fájlnevet kisbetűre (az mmv segédprogram használatával).

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

következtetés

lehetséges az alapértelmezett Bash segédprogramok használata az összes tömeges átnevezéshez Linuxon, de az átnevezés és az mmv eszközök sokkal könnyebbé teszik. Használhatjuk a Thunar tömeges átnevezési alkalmazását is, ha inkább a GUI-t használjuk a parancssor felett. Az ebben az útmutatóban szereplő példák az átnevezési forgatókönyvek széles körét fedik le, és könnyen adaptálhatók más igényekhez.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.