Sake suna Duk Fayiloli da Sunayen Darakta zuwa Ƙananan Harka a cikin Linux


A cikin labarinmu da ya gabata, mun bayyana yadda ake ƙirga adadin fayiloli da kundin adireshi a cikin kundin da aka bayar. Wannan jagorar zai nuna maka yadda ake sake suna duk fayiloli da sunayen kundayen adireshi zuwa ƙananan haruffa a cikin Linux.

Akwai hanyoyi da yawa don cimma wannan, amma za mu bayyana biyu daga cikin mafi inganci kuma amintattun hanyoyin. Don manufar wannan jagorar, mun yi amfani da kundin adireshi mai suna Files wanda ke da tsari mai zuwa:

# find Files -depth

1. Yin amfani da nemo, xargs da sake suna Commands Tare

nemo mai amfani don sake suna duk fayiloli ko kundin adireshi a cikin wani kundin adireshi zuwa ƙananan haruffa kamar haka:

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

Bayanin zaɓuɓɓukan da aka yi amfani da su a cikin umarnin da ke sama.

  • -zurfin - yana lissafin abubuwan da ke cikin kowane kundin adireshi kafin kundin adireshin kansa.
  • -n 1 - yana umurtar xargs suyi amfani da mafi yawan hujja ɗaya akan kowane layin umarni daga nemo fitarwa.

Samfurin fitarwa bayan canza suna fayiloli da ƙananan bayanai zuwa ƙananan haruffa a cikin Files directory.

Wata madadin hanyar amfani da umarnin mv a cikin rubutun kamar yadda aka bayyana a ƙasa.

2. Amfani da nema da mv Commands a cikin Rubutun Shell

Da farko ƙirƙirar rubutun ku (zaka iya sanya masa suna duk abin da kuka fi so):

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

Sannan saka lambar da ke ƙasa a ciki.

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

Ajiye ku rufe fayil ɗin, sannan ku sanya rubutun aiwatarwa kuma ku gudanar da shi:

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

Hakanan kuna iya son karanta waɗannan labarai masu alaƙa.

  1. Bayyana \Komai Fayil ne da Nau'in Fayiloli a cikin Linux
  2. fswatch - Yana Kula da Fayiloli da Canje-canje ko Gyarawa a cikin Linux
  3. Fasd – Kayan Aikin Lantarki Mai Ba da Sauri zuwa Fayiloli da Kudiddigar Kuɗi
  4. FSlint – Yadda ake Nemo da Cire Kwafin Fayiloli a cikin Linux

A cikin wannan jagorar, mun bayyana muku yadda ake sake suna duk fayiloli da kundayen adireshi zuwa ƙananan haruffa a cikin Linux. Idan an sami wasu kurakurai, da fatan za a buge mu ta hanyar amsawar da ke ƙasa. Hakanan zaka iya ba mu duk wasu hanyoyin yin hakan.