Fhli faýllaryň we katalog atlarynyň adyny Linux-da kiçi harplara üýtgediň


Öňki makalamyzda, berlen bukjanyň içindäki faýllaryň we bukjalaryň sanyny nädip sanamalydygyny beýan etdik. Bu gollanma, ähli faýllaryň we kataloglaryň atlaryny Linux-da kiçi harp bilen üýtgetmegiň usullaryny görkezer.

Muňa ýetmegiň birnäçe usuly bar, ýöne iň täsirli we ygtybarly iki usuly düşündireris. Bu gollanmanyň maksady üçin, aşakdaky gurluşy bolan Faýllar atly katalogy ulandyk:

# find Files -depth

1. Find, xargs ulanyp, buýruklary bilelikde üýtgediň

Belli bir katalogdaky ähli faýllaryň ýa-da kiçi bukjalaryň adyny aşakdaky ýaly üýtgetmek üçin peýdaly tapyň:

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

Aboveokardaky buýrukda ulanylýan wariantlaryň düşündirişi.

  • -depth - her bir katalogyň mazmunyny katalogyň özi görkezýär.
  • -n 1 - xargs-a buýruk tapmak üçin buýruk setirinde iň köp argument ulanmagy tabşyrýar.

Faýllar katalogynda kiçi harplar bilen faýllaryň we kiçi bukjalaryň adyny üýtgedenden soň çykyş çykyşy.

Mv buýruklaryny aşakda düşündirilişi ýaly skriptde ulanmagyň başga bir alternatiw usuly.

2. “Shell” skriptinde find we mv buýruklaryny ulanmak

Ilki bilen skriptiňizi dörediň (islän zadyňyzy atlandyryp bilersiňiz):

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

Soňra aşakdaky kody goşuň.

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

Faýly ýazdyryň we ýapyň, soňra skripti ýerine ýetirip, işlediň:

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

Şeýle hem şu aşakdaky degişli makalalary okap bilersiňiz.

  1. \Hemme zat faýl we Linux-da faýllaryň görnüşleri
  2. fswatch - Faýllara we katalog üýtgeşmelerine ýa-da Linux-daky üýtgeşmelere gözegçilik edýär
  3. Fasd - Faýllara we direktoriýalara çalt girmegi teklip edýän buýruk guraly
  4. FSlint - Linux-da dublikat faýllary nädip tapmaly we aýyrmaly

Bu gollanmada, Linux-da kiçi harplar bilen ähli faýllaryň we kataloglaryň adyny nädip üýtgetmelidigini düşündirdik. Anyalňyşlyklar bar bolsa, aşakdaky seslenme formasy arkaly bize ýüz tutmagyňyzy haýyş edýäris. Şeýle hem bize edil şonuň ýaly başga usullary hödürläp bilersiňiz.