Pārdēvējiet visus failus un direktoriju nosaukumus uz Linux mazajiem burtiem


Iepriekšējā rakstā mēs aprakstījām, kā saskaitīt failu un apakšdirektoriju skaitu noteiktā direktorijā. Šī rokasgrāmata parādīs, kā visus failu un direktoriju nosaukumus pārdēvēt par mazajiem burtiem Linux.

To var sasniegt vairākos veidos, taču mēs izskaidrosim divas visefektīvākās un uzticamākās metodes. Šajā ceļvedī mēs esam izmantojuši direktoriju ar nosaukumu Files , kam ir šāda struktūra:

# find Files -depth

1. Komandu Find, xargs un pārdēvēšana kopā

atrodiet utilītu, lai pārdēvētu visus failus vai apakšdirektorijus noteiktā direktorijā uz mazajiem burtiem šādi:

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

Iepriekš aprakstītajā komandā izmantoto opciju skaidrojums.

  • -depth - katra direktorija saturs ir norādīts pirms paša direktorija.
  • -n 1 - uzdod xargs komandai izmantot meklēšanas rezultātos ne vairāk kā vienu argumentu.

Izlases paraugs pēc failu un apakšdirektoriju pārdēvēšanas par mazajiem burtiem direktorijā Faili .

Vēl viens alternatīvs veids, kā izmantot mv komandas skriptā, kā paskaidrots zemāk.

2. Shell Script komandā atrast un mv komandas

Vispirms izveidojiet skriptu (to varat nosaukt kā vēlaties):

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

Tad pievienojiet tajā zemāk esošo kodu.

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

Saglabājiet un aizveriet failu, pēc tam izveidojiet skriptu izpildāmu un palaidiet to:

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

Jūs varētu vēlēties arī izlasīt šos saistītos rakstus.

  1. Paskaidrojums “Viss ir fails” un failu veidi operētājsistēmā Linux
  2. fswatch - uzrauga failus un direktoriju izmaiņas vai modifikācijas Linux
  3. Fasd - komandrīku rīks, kas nodrošina ātru piekļuvi failiem un direktorijiem
  4. FSlint - kā atrast un noņemt dublētus failus operētājsistēmā Linux

Šajā ceļvedī mēs izskaidrojām, kā visus failus un direktorijus pārdēvēt par mazajiem Linux. Ja rodas kādas kļūdas, lūdzu, sazinieties ar mums, izmantojot zemāk esošo atsauksmju veidlapu. Jūs varat arī piedāvāt mums citas metodes, kā rīkoties tāpat.