Weboldal keresés

Nevezze át az összes fájlt és könyvtárnevet kisbetűsre Linux alatt


Korábbi cikkünkben leírtuk, hogyan számolhatjuk meg az adott könyvtáron belüli fájlok és alkönyvtárak számát. Ez az útmutató megmutatja, hogyan nevezheti át az összes fájl és könyvtár nevét kisbetűre Linux alatt.

Olvassa el még: Hogyan találja meg a legnépszerűbb könyvtárakat és fájlokat (lemezterület) Linux alatt

Számos módja van ennek elérésére, de elmagyarázzuk a két leghatékonyabb és legmegbízhatóbb módszert. Ebben az útmutatóban egy Fájlok nevű könyvtárat használtunk, amely a következő szerkezettel rendelkezik:

find Files -depth

1. A find, xargs és a Commands Together átnevezése segítségével

A rename egy egyszerű parancssori segédprogram több fájl egyidejű átnevezésére Linux alatt. Használhatja a find segédprogrammal együtt, hogy egy adott könyvtárban lévő összes fájlt vagy alkönyvtárat kisbetűre nevezze át az alábbiak szerint:

find Files -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

A fenti parancsban használt opciók magyarázata.

  • -depth – az egyes könyvtárak tartalmát a könyvtár előtt sorolja fel.
  • -n 1 – arra utasítja az xargst, hogy parancssoronként legfeljebb egy argumentumot használjon a find kimenetből.

Mintakimenet a fájlok és alkönyvtárak kisbetűsre való átnevezése után a Files könyvtárban.

Egy másik alternatív módszer a find és mv parancsok használatára egy szkriptben, az alábbiak szerint.

2. Find és mv parancsok használata a Shell Scriptben

Először hozza létre a szkriptet (bármilyen nevet adhat neki):

cd ~/bin
vi rename-files.sh

Ezután adja hozzá az alábbi kódot.

#!/bin/bash
#print usage 
if [ -z $1 ];then
        echo "Usage :$(basename $0) parent-directory"
        exit 1
fi

#process all subdirectories and files in parent directory
all="$(find $1 -depth)"



for name in ${all}; do
        #set new name in lower case for files and directories
        new_name="$(dirname "${name}")/$(basename "${name}" | tr '[A-Z]' '[a-z]')"

        #check if new name already exists
        if [ "${name}" != "${new_name}" ]; then
                [ ! -e "${new_name}" ] && mv -T "${name}" "${new_name}"; echo "${name} was renamed to ${new_name}" || echo "${name} wasn't renamed!"
        fi
done

echo
echo
#list directories and file new names in lowercase
echo "Directories and files with new names in lowercase letters"
find $(echo $1 | tr 'A-Z' 'a-z') -depth

exit 0

Mentse és zárja be a fájlt, majd tegye végrehajthatóvá a szkriptet, és futtassa:

chmod +x rename-files.sh
rename-files.sh Files     #Specify Directory Name

Érdemes lehet elolvasni a következő kapcsolódó cikkeket is.

  1. A „Minden egy fájl” és a fájltípusok magyarázata Linuxban
  2. fswatch – Figyeli a fájlok és a könyvtár változásait vagy módosításait Linux alatt
  3. Fasd – Parancssori eszköz, amely gyors hozzáférést biztosít a fájlokhoz és könyvtárakhoz
  4. FSlint – Az ismétlődő fájlok keresése és eltávolítása Linux alatt

Ebben az útmutatóban elmagyaráztuk, hogyan nevezhet át minden fájlt és könyvtárat kisbetűsre Linux alatt. Ha bármilyen hibát észlel, kérjük, lépjen velünk kapcsolatba az alábbi visszajelzési űrlapon keresztül. Bármilyen más módszert is felajánlhat nekünk, hogy ugyanezt megtegye.