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.
- Forklaring på "Alt er en fil" og filtyper i Linux
- fswatch - Overvåger filer og katalogændringer eller ændringer i Linux
- Fasd - Et kommandolinjeværktøj, der giver hurtig adgang til filer og kataloger
- 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.