Omdøb alle filer og katalognavne til små bogstaver i Linux


I vores tidligere artikel har vi beskrevet, hvordan man tæller antallet af filer og underkataloger i et givet bibliotek. Denne guide viser dig, hvordan du omdøber alle filer og mapper til små bogstaver i Linux.

Der er flere måder at opnå dette på, men vi forklarer to af de mest effektive og pålidelige metoder. Med henblik på denne vejledning har vi brugt et bibliotek med navnet Files , som har følgende struktur:

# find Files -depth

1. Brug find, xargs og omdøb kommandoer sammen

find værktøj til at omdøbe alle filer eller underkataloger i en bestemt mappe til små bogstaver som følger:

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

Forklaring af indstillinger, der anvendes i ovenstående kommando.

  • -dybde - viser hvert biblioteks indhold før selve biblioteket.
  • -n 1 - beder xargs om at bruge højst et argument pr. kommandolinje fra find-output.

Eksempel på output efter omdøbning af filer og underkataloger til små bogstaver i mappen Files .

En anden alternativ måde at bruge mv-kommandoerne i et script som forklaret nedenfor.

2. Brug find og mv-kommandoer i Shell Script

Opret først dit script (du kan navngive det, hvad du foretrækker):

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

Tilføj derefter koden nedenfor i den.

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

Gem og luk filen, gør derefter scriptet eksekverbart og kør det:

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

Du kan også lide at læse disse følgende relaterede artikler.

  1. Forklaring på "Alt er en fil" og filtyper i Linux
  2. fswatch - Overvåger filer og katalogændringer eller ændringer i Linux
  3. Fasd - Et kommandolinjeværktøj, der giver hurtig adgang til filer og kataloger
  4. FSlint - Sådan finder du og fjerner duplikatfiler i Linux

I denne vejledning ekskluderede vi dig, hvordan du omdøber alle filer og mapper til små bogstaver i Linux. Hvis du får fejl, bedes du slå os op via feedbackformularen nedenfor. Du kan lige så godt tilbyde os andre metoder til at gøre det samme.