Ilisan ang Tanan nga mga File ug Direktoryo nga Ngalan sa Lowercase sa Linux


Sa among miaging artikulo, among gihulagway kung giunsa pag-ihap ang gidaghanon sa mga file ug mga subdirektoryo sa sulod sa gihatag nga direktoryo. Kini nga giya magpakita kanimo kung giunsa pag-usab ang ngalan sa tanan nga mga file ug mga ngalan sa direktoryo sa gamay nga letra sa Linux.

Adunay daghang mga paagi aron makab-ot kini, apan among ipasabut ang duha sa labing episyente ug kasaligan nga mga pamaagi. Alang sa katuyoan niini nga giya, migamit kami og direktoryo nga ginganlan og Files nga adunay mosunod nga istruktura:

# find Files -depth

1. Gamit ang pagpangita, pag-xargs ug pag-ilis sa ngalan sa mga Command Together

pangitaa ang utility aron mabag-o ang ngalan sa tanan nga mga file o mga subdirektoryo sa usa ka partikular nga direktoryo sa gamay nga letra sama sa mosunod:

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

Pagpatin-aw sa mga opsyon nga gigamit sa sugo sa ibabaw.

  • -depth – naglista sa sulod sa matag direktoryo sa wala pa ang direktoryo mismo.
  • -n 1 – nagmando sa xargs sa paggamit ug pinakadaghang argumento kada command line gikan sa find output.

Sample nga output human sa pag-ilis sa mga file ug subdirectory ngadto sa lowercase sa Files directory.

Laing alternatibong paagi gamit ang mv commands sa usa ka script sama sa gipatin-aw sa ubos.

2. Gamit ang find ug mv Commands sa Shell Script

Una paghimo sa imong script (mahimo nimo kining hinganlan sa bisan unsang gusto nimo):

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

Dayon idugang ang code sa ubos niini.

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

I-save ug isira ang file, dayon himoa nga ma-executable ang script ug padagana kini:

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

Mahimo usab nimong basahon kining mosunod nga may kalabotan nga mga artikulo.

  1. Patin-aw sa \Ang Tanan usa ka File ug Mga Uri sa mga File sa Linux
  2. fswatch – Nagmonitor sa mga File ug Direktoryo nga Pagbag-o o Pagbag-o sa Linux
  3. Fasd – Usa ka Tool sa Commandline nga Nagtanyag ug Dali nga Pag-access sa mga File ug Direktoryo
  4. FSlint – Unsaon Pagpangita ug Pagtangtang sa Duplicate Files sa Linux

Sa kini nga giya, gipatin-aw namon kanimo kung giunsa pagbag-o ang ngalan sa tanan nga mga file ug direktoryo sa gamay nga letra sa Linux. Kung adunay bisan unsang mga sayup, palihug i-hit kami pinaagi sa feedback nga porma sa ubos. Mahimo usab nimo nga itanyag kanamo ang bisan unsang ubang mga pamaagi sa pagbuhat sa parehas.