Preimenujte sve datoteke i nazive direktorija u mala slova u Linuxu


U našem prethodnom članku smo opisali kako prebrojati broj datoteka i poddirektorija unutar datog direktorija. Ovaj vodič će vam pokazati kako preimenovati sve datoteke i imena direktorija u mala slova u Linuxu.

Pročitajte također: Kako saznati najbolje direktorije i datoteke (prostor na disku) u Linuxu

Postoji nekoliko načina da se to postigne, ali mi ćemo objasniti dvije najefikasnije i najpouzdanije metode. Za potrebe ovog vodiča koristili smo direktorij pod nazivom Files koji ima sljedeću strukturu:

find Files -depth

1. Koristeći find, xargs i preimenujte komande zajedno

rename je jednostavan uslužni program naredbene linije za preimenovanje nekoliko datoteka odjednom u Linuxu. Možete ga koristiti zajedno s uslužnim programom find da preimenujete sve datoteke ili poddirektorije u određenom direktoriju u mala slova na sljedeći način:

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

Objašnjenje opcija korištenih u gornjoj naredbi.

  • -depth – navodi sadržaj svakog direktorija prije samog direktorija.
  • -n 1 – upućuje xargs da koristi najviše jedan argument po komandnoj liniji iz pronađi izlaza.

Uzorak izlaza nakon preimenovanja datoteka i poddirektorija u mala slova u direktoriju Files.

Drugi alternativni način korištenja naredbi find i mv u skripti kao što je objašnjeno u nastavku.

2. Korištenje naredbi find i mv u shell skripti

Prvo kreirajte svoju skriptu (možete je imenovati kako god želite):

cd ~/bin
vi rename-files.sh

Zatim u njega dodajte kod ispod.

#!/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

Sačuvajte i zatvorite datoteku, a zatim učinite skriptu izvršnom i pokrenite je:

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

Možda biste željeli pročitati i ove sljedeće povezane članke.

  1. Objašnjenje “Sve je datoteka” i vrste datoteka u Linuxu
  2. fswatch – Nadzire promjene ili modifikacije datoteka i direktorija u Linuxu
  3. Fasd – Alat komandne linije koji nudi brz pristup datotekama i direktorijumima
  4. FSlint – Kako pronaći i ukloniti duplicirane datoteke u Linuxu

U ovom vodiču smo vam objasnili kako preimenovati sve datoteke i direktorije u mala slova u Linuxu. Ako dobijete bilo kakvu grešku, javite nam se putem obrasca za povratne informacije ispod. Možete nam ponuditi i bilo koju drugu metodu za isto.