എല്ലാ ഫയലുകളുടെയും ഡയറക്uടറി നാമങ്ങളുടെയും പേര് ലിനക്uസിൽ ചെറിയക്ഷരത്തിലേക്ക് മാറ്റുക


നൽകിയിരിക്കുന്ന ഡയറക്uടറിക്കുള്ളിലെ ഫയലുകളുടെയും സബ്uഡയറക്uടറികളുടെയും എണ്ണം എങ്ങനെ കണക്കാക്കാമെന്ന് ഞങ്ങളുടെ മുൻ ലേഖനത്തിൽ ഞങ്ങൾ വിവരിച്ചിട്ടുണ്ട്. ലിനക്സിൽ എല്ലാ ഫയലുകളുടെയും ഡയറക്uടറികളുടെയും പേരുകൾ ചെറിയക്ഷരത്തിലേക്ക് എങ്ങനെ പുനർനാമകരണം ചെയ്യാമെന്ന് ഈ ഗൈഡ് നിങ്ങളെ കാണിക്കും.

ഇത് നേടുന്നതിന് നിരവധി മാർഗങ്ങളുണ്ട്, എന്നാൽ ഏറ്റവും കാര്യക്ഷമവും വിശ്വസനീയവുമായ രണ്ട് രീതികൾ ഞങ്ങൾ വിശദീകരിക്കും. ഈ ഗൈഡിന്റെ ആവശ്യത്തിനായി, ഇനിപ്പറയുന്ന ഘടനയുള്ള ഫയലുകൾ എന്ന പേരിലുള്ള ഒരു ഡയറക്ടറി ഞങ്ങൾ ഉപയോഗിച്ചു:

# find Files -depth

1. find, xargs എന്നിവ ഉപയോഗിച്ച് കമാൻഡുകൾ ഒരുമിച്ച് പുനർനാമകരണം ചെയ്യുക

ഒരു പ്രത്യേക ഡയറക്uടറിയിലെ എല്ലാ ഫയലുകളുടെയും ഉപഡയറക്uടറികളുടെയും പേരുമാറ്റുന്നതിനുള്ള യൂട്ടിലിറ്റി ഇനിപ്പറയുന്ന രീതിയിൽ ചെറിയക്ഷരത്തിലേക്ക് മാറ്റുക:

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

മുകളിലുള്ള കമാൻഡിൽ ഉപയോഗിച്ച ഓപ്ഷനുകളുടെ വിശദീകരണം.

  • -ഡെപ്ത് - ഓരോ ഡയറക്ടറിയുടെയും ഉള്ളടക്കങ്ങൾ ഡയറക്uടറിക്ക് മുമ്പായി ലിസ്റ്റുചെയ്യുന്നു.
  • -n 1 – ഫൈൻഡ് ഔട്ട്uപുട്ടിൽ നിന്ന് ഒരു കമാൻഡ് ലൈനിൽ പരമാവധി ഒരു ആർഗ്യുമെന്റ് ഉപയോഗിക്കാൻ xargs-നോട് നിർദ്ദേശിക്കുന്നു.

Files ഡയറക്uടറിയിൽ ഫയലുകളുടെയും ഉപഡയറക്uടറികളുടെയും പേരുമാറ്റി ചെറിയക്ഷരത്തിലേക്ക് പുനർനാമകരണം ചെയ്uതതിന് ശേഷമുള്ള സാമ്പിൾ ഔട്ട്uപുട്ട്.

താഴെ വിശദീകരിച്ചിരിക്കുന്നതുപോലെ ഒരു സ്ക്രിപ്റ്റിൽ mv കമാൻഡുകൾ ഉപയോഗിക്കുന്ന മറ്റൊരു ബദൽ മാർഗം.

2. ഷെൽ സ്ക്രിപ്റ്റിൽ ഫൈൻഡ്, എംവി കമാൻഡുകൾ ഉപയോഗിക്കുന്നു

ആദ്യം നിങ്ങളുടെ സ്uക്രിപ്റ്റ് സൃഷ്uടിക്കുക (നിങ്ങൾക്ക് ഇഷ്ടമുള്ളതെന്തും പേരിടാം):

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

എന്നിട്ട് അതിൽ താഴെയുള്ള കോഡ് ചേർക്കുക.

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

ഫയൽ സംരക്ഷിച്ച് അടയ്ക്കുക, തുടർന്ന് സ്ക്രിപ്റ്റ് എക്സിക്യൂട്ടബിൾ ആക്കി പ്രവർത്തിപ്പിക്കുക:

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

ഇനിപ്പറയുന്ന അനുബന്ധ ലേഖനങ്ങൾ വായിക്കാനും നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം.

  1. \എല്ലാം ഒരു ഫയലാണ് എന്നതിന്റെ വിശദീകരണവും ലിനക്സിലെ ഫയലുകളുടെ തരങ്ങളും
  2. fswatch - ലിനക്സിലെ ഫയലുകളും ഡയറക്uടറി മാറ്റങ്ങളും പരിഷ്uക്കരണങ്ങളും നിരീക്ഷിക്കുന്നു
  3. Fasd - ഫയലുകളിലേക്കും ഡയറക്uടറികളിലേക്കും ദ്രുത പ്രവേശനം നൽകുന്ന ഒരു കമാൻഡ്uലൈൻ ഉപകരണം
  4. FSlint – Linux-ൽ ഡ്യൂപ്ലിക്കേറ്റ് ഫയലുകൾ എങ്ങനെ കണ്ടെത്താം, നീക്കം ചെയ്യാം

ഈ ഗൈഡിൽ, ലിനക്സിൽ എല്ലാ ഫയലുകളുടെയും ഡയറക്uടറികളുടെയും പേരുമാറ്റുന്നത് എങ്ങനെയെന്ന് ഞങ്ങൾ വിശദീകരിച്ചു. എന്തെങ്കിലും പിശകുകൾ ഉണ്ടെങ്കിൽ, താഴെയുള്ള ഫീഡ്uബാക്ക് ഫോം വഴി ഞങ്ങളെ അറിയിക്കുക. അതുപോലെ ചെയ്യുന്നതിനുള്ള മറ്റേതെങ്കിലും രീതികൾ നിങ്ങൾക്ക് വാഗ്ദാനം ചെയ്യാവുന്നതാണ്.