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.
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 sed
haszná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
-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
-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.
2.lépés. Kattintson a pluszjelre az átnevezni kívánt fájlok hozzáadásához.
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.
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.
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.txt
a 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.