V Linuxu preimenujte vse datoteke in imena imenikov v male črke


V prejšnjem članku smo opisali, kako šteti število datotek in podimenikov znotraj določenega imenika. Ta priročnik vam bo pokazal, kako v Linuxu preimenujete imena vseh datotek in imenikov v male črke.

To lahko dosežemo na več načinov, vendar bomo razložili dve najučinkovitejši in najbolj zanesljivi metodi. Za namen tega vodnika smo uporabili imenik z imenom Datoteke , ki ima naslednjo strukturo:

# find Files -depth

1. Skupaj z uporabo ukazov find, xargs in preimenovanje

najdi pripomoček za preimenovanje vseh datotek ali podimenikov v določenem imeniku v male črke, kot sledi:

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

Pojasnilo možnosti, uporabljene v zgornjem ukazu.

  • -depth - navede vsebino vsakega imenika pred samim imenikom.
  • -n 1 - naroči xargs, naj uporabi največ en argument v ukazni vrstici iz izhoda iskanja.

Vzorec izhoda po preimenovanju datotek in podimenikov v male črke v imeniku Datoteke .

Drug alternativni način uporabe ukazov mv v skriptu, kot je razloženo spodaj.

2. Uporaba ukazov find in mv v skriptu Shell

Najprej ustvarite svoj skript (lahko ga poimenujete poljubno):

$ cd ~/bin
$ vi rename-files.sh

Nato vanj dodajte spodnjo kodo.

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

Shranite in zaprite datoteko, nato naredite skript izvedljiv in ga zaženite:

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

Morda boste radi prebrali tudi te naslednje povezane članke.

  1. Pojasnilo\"Vse je datoteka" in vrste datotek v Linuxu
  2. fswatch - Nadzira spremembe in spremembe datotek in imenikov v Linuxu
  3. Fasd - orodje ukazne vrstice, ki ponuja hiter dostop do datotek in imenikov
  4. FSlint - Kako najti in odstraniti podvojene datoteke v Linuxu

V tem priročniku smo vam razložili, kako v Linuxu preimenovati vse datoteke in imenike v male črke. Če pride do kakršnih koli napak, nas prosimo kontaktirajte preko spodnjega obrazca za povratne informacije. Ponudite nam lahko tudi druge načine, kako to storiti.