Nimetage kõik failid ja katalooginimed Linuxis ümber väiketähtedeks


Meie eelmises artiklis oleme kirjeldanud, kuidas loendada antud kataloogis olevate failide ja alamkataloogide arvu. See juhend näitab, kuidas kõik failide ja kataloogide nimed Linuxis väiketähtedeks ümber nimetada.

Selle saavutamiseks on mitu võimalust, kuid selgitame kahte kõige tõhusamat ja usaldusväärsemat meetodit. Selle juhendi jaoks oleme kasutanud kataloogi nimega Files , millel on järgmine struktuur:

# find Files -depth

1. Kasutage käske find, xargs ja ümbernimetamist koos

leidke utiliit, et kõik konkreetse kataloogi failid või alamkataloogid ümber nimetada väiketähtedeks järgmiselt:

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

Ülaltoodud käsus kasutatud valikute selgitus.

  • -depth - loetleb iga kataloogi sisu enne kataloogi ennast.
  • -n 1 - käsib xargsil kasutada väljundi leidmisel käsureal maksimaalselt ühte argumenti.

Prooviväljund pärast failide ja alamkataloogide ümbernimetamist kataloogi Files väiketähtedeks.

Teine alternatiivne viis mv käskude kasutamiseks skriptis, nagu allpool selgitatud.

2. Shell Scriptis käsu find ja mv kasutamine

Kõigepealt looge oma skript (võite selle nimetada mis iganes soovite):

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

Seejärel lisage selles allpool olev kood.

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

Salvestage ja sulgege fail, seejärel tehke skript käivitatavaks ja käivitage see:

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

Samuti võiksite lugeda neid järgmisi seotud artikleid.

  1. Linuxi\"kõik on fail" ja failitüüpide seletus
  2. fswatch - jälgib failide ja kataloogi muudatusi või muudatusi Linuxis
  3. Fasd - käsurea tööriist, mis pakub kiiret juurdepääsu failidele ja kataloogidele
  4. FSlint - kuidas duplikaatfaile Linuxis leida ja eemaldada

Selles juhendis tutvustasime teile, kuidas kõik failid ja kataloogid Linuxis väiketähtedeks ümber nimetada. Vigade ilmnemisel tabage meid allpool oleva tagasisidevormi kaudu. Võite ka pakkuda meile muid meetodeid sama toimimiseks.