Bevezetés
a Linux számos lehetőséget kínál a fájlok átnevezésére, beleértve a grafikus felhasználói felület és a több dedikált terminálparancsot. Ez viszonylag egyszerűvé teszi az egyes fájlok átnevezését, de kihívást jelenthet több fájl átnevezése egyszerre.
ebben az oktatóanyagban különböző parancsokat fogunk áttekinteni, amelyeket a Linux terminálon használhat a fájlok átnevezésére Linux alatt.
előfeltételek
- Linux disztribúciót futtató rendszer
- sudo jogosultságokkal rendelkező fiók
- hozzáférés a terminál ablakához/parancssorához
- hozzáférés egy szövegszerkesztőhöz, például Vim vagy Nano
fájlok átnevezése az mv paranccsal
mv
ha a mv
parancs használatakor célkönyvtárat ad meg, a forrásfájl arra a könyvtárra kerül. Ha a cél egy másik fájlnév, akkor a mv
parancs átnevezi a forrásfájlt erre a névre.
Megjegyzés: Tudjon meg többet az mv parancs használatáról a könyvtárak Linuxban történő mozgatásáról szóló útmutatónkban.
egyetlen fájl átnevezése az MV paranccsal
a mv
parancs használata alapértelmezett szintaxisával lehetővé teszi egyetlen fájl átnevezését:
mv
például, ha át akarjuk nevezni example1.txt be example2.txt, mi használnánk:
mv example1.txt example2.txt
mivel nincs kimenet, ha a parancs sikeres, a ls
parancsot használjuk annak ellenőrzésére, hogy a név megváltozott-e:
ls -l
több fájl átnevezése az MV paranccsal
önmagában a mv
parancs egyetlen fájlt nevez át. Más parancsokkal való kombinálása azonban lehetővé teszi több fájl átnevezését egyszerre.
az egyik módszer a find
paranccsal több hasonló nevű fájlt jelölhet ki, majd a mv
paranccsal nevezheti át őket:
find . -depth -name "" -exec sh -c 'f="{}"; mv -- "$f" "${f%}"' \;
ezzel a szintaxissal a find
parancs az aktuális fájlnév egy elemét határozza meg Keresési paraméterként. Ezután a -exec
végrehajtja a mv
parancsot minden olyan fájlon, amely megfelel a keresésnek, megváltoztatva az aktuális fájlneveket az újra.
például, ha van példa1.txt, example2.txt és example3.txt és szeretné megváltoztatni a kiterjesztést .pdf:
find . -depth -name "*.txt" -exec sh -c 'f="{}"; mv -- "$f" "${f%.txt}.pdf"' \;
egy másik módszer a mv
parancs használata a <strong>for</strong>
hurok részeként egy bash szkriptben.
ugyanezt a példát használva kezdje el létrehozni és megnyitni egy bash szkriptfájlt egy szövegszerkesztővel, például a Nano-val:
sudo nano rename_files.sh
Megjegyzés: Tudjon meg többet a Bash parancsfájlok használatáról a fájlok és könyvtárak kezelésére Linuxban.
adja hozzá a következő sorokat a szkripthez:
#!/bin/bashfor f in *.txt; do mv -- "$f" "${f%.txt}.pdf"done
a fenti szkriptben:
- az első sor arra utasítja a szkriptet, hogy keresse meg az aktuális könyvtár összes fájlját.txt.
- a második sor a
mv
parancsot használja minden talált fájlon a.txt kiterjesztés .pdf. - a harmadik sor véget vet a hurok szegmensnek.
nyomja meg a Ctrl+X billentyűkombinációt, majd írja be az Y billentyűt, majd nyomja meg az Enter billentyűt a parancsfájl módosításainak mentéséhez és a kilépéshez.
használja a sh
parancsot a parancsfájl végrehajtásához:
sh rename_files.sh
fájl átnevezése a rename paranccsal
a rename
paranccsal több fájlt vagy könyvtárat lehet átnevezni Linuxban. Több funkciót kínál, mint a mv
parancs, de használata nagyobb kihívást jelenthet, mivel alapvető ismereteket igényel a Perl kifejezésekről.
a
átnevezés parancs telepítése sok Linux disztribúción a rename
parancs alapértelmezés szerint nem érhető el. Ha a rendszeréből hiányzik a rename
parancs, telepítse a következővel:
- Ubuntu és Debian esetén a
sudo apt install rename
- CentOS és Fedora esetén a
sudo yum install prename
- Arch Linux esetén a
sudo pacman -S
átnevezés
Parancsszintaxis és opciók átnevezése
a Perl reguláris kifejezéseknek három típusa van: match, substitute és lefordítani. A rename
parancs helyettesítő és fordító kifejezéseket használ a fájl-és könyvtárnevek módosításához.
helyettesítő kifejezések cserélje ki a fájlnév egy részét egy másik karakterláncra. A következő szintaxist használják:
rename 's///'
ezzel a szintaxissal a parancs átnevezi a fájlt a fájlnév elem első előfordulásának helyettesítésével. A fenti parancsban:
-
rename
: meghívja az Átnevezés parancsot. -
: egy opcionális argumentumot biztosít, amely megváltoztatja a parancs végrehajtásának módját.
-
s
: helyettesítő kifejezést jelöl. -
: megadja a fájlnév kicserélni kívánt részét.
-
: megadja az aktuális fájlnév egy részének helyettesítését.
-
: meghatározza az átnevezni kívánt fájlt.
A translate kifejezés lefordítja az egyik karakterláncot a másikba, karakter a karakterhez. Ez a típusú kifejezés a következő szintaxist használja:
rename 'y///'
példa rename
parancsra fordítási kifejezés használatával:
rename 'y/abc/xyz/'
ebben a példában a fájlnév minden a karakterét x, minden b-t y, minden c-t pedig z helyettesíti.
az Átnevezés parancs a következő lehetőségeket használja:
-
-a
: a fájlnév elem összes előfordulását helyettesíti az első helyett. -
-f
: A meglévő fájlok felülírását kényszeríti. -
-h
: megjeleníti a Súgó szövegét. -
-i
: a meglévő fájlok felülírása előtt egy promptot jelenít meg. -
-l
: a fájlnév elem utolsó előfordulását helyettesíti az első helyett. -
-n
: száraz futást végez, nem végez állandó változtatásokat. A legjobb a bőbeszédű kimenettel kombinálva (-v
). -
-s
: átnevezi a célt a szimbolikus link helyett. -
-v
: a kimenet részletes változatát mutatja. -
-V
: megjeleníti a parancs verzióját.
átnevezési parancs példák
1. Fájlkiterjesztés módosítása
visszatérve az utolsó példánkhoz, hogy megváltoztassuk a fájlkiterjesztést.txt hogy .pdf, használat:
rename -v 's/.txt/.pdf/' *.txt
2. Fájlnév egy részének cseréje
a fájlnév másik részének cseréje ugyanazt a szintaxist követi. Átnevezni example1.txt, example2.txt és example3.txt hogy teszt1.txt, test2.txt és text3.txt, használja:
rename -v 's/example/test/' *.txt
3. Fájlnév egy részének törlése
a rename
opció lehetővé teszi a fájlnév egy részének törlését a kifejezés helyettesítő részének kihagyásával. Például, ha meg akarjuk rövidíteni a példát ex:
rename -v 's/ample//' *.txt
4. Hasonló nevű fájlok átnevezése
a rename
opció másik felhasználási módja a hasonló nevű fájlok átnevezése. Például, ha át akarjuk nevezni a fájlokat a példával és a mintával a nevükben, hogy teszteljék:
rename -v 's/(ex|s)ample/test/' *.txt
5. Fájlok átnevezése karakterenként
a rename
parancs lehetővé teszi a fordítási kifejezések használatát a fájlok karakterenkénti átnevezésére is. Például, ha több fájlt szeretne átnevezni példafájl az üres hely aláhúzással történő helyettesítésével (_):
rename -v 'y/ /\_/' *.txt
6.
kisbetűk konvertálása a fájlnevekben lévő kisbetűk nagybetűkké történő konvertálásához használja:
rename -v 'y/a-z/A-Z/' *.txt
7. Nagybetűk konvertálása
a fordított akkor is működik, ha a kifejezésben a nagybetűk és a kisbetűk sorrendjét váltjuk:
rename -v 'y/A-Z/a-z/' *.TXT
Megjegyzés: legyen óvatos a karakter esetének megváltoztatásakor, mivel ez megváltoztatja a fájlkiterjesztést is.
következtetés
miután elolvasta ezt az oktatóanyagot, képesnek kell lennie a fájlok átnevezésére a mv
és rename
parancsokkal Linux alatt.
Tudjon meg többet a Linux parancsok használatáról a Linux parancsok Csalólapján.