Pervardykite visus failus ir katalogų pavadinimus į mažąsias „Linux“.


Ankstesniame straipsnyje aprašėme, kaip suskaičiuoti failų ir pakatalogių skaičių tam tikrame kataloge. Šis vadovas parodys, kaip pervardyti visų failų ir katalogų pavadinimus mažosiomis raidėmis sistemoje „Linux“.

Taip pat skaitykite: kaip sužinoti populiariausius katalogus ir failus (vieta diske) sistemoje „Linux“

Yra keletas būdų tai pasiekti, tačiau paaiškinsime du efektyviausius ir patikimiausius būdus. Šiam vadovui naudojome katalogą pavadinimu Failai, kurio struktūra yra tokia:

find Files -depth

1. Naudodami Find, xargs ir pervardykite komandas kartu

pervardyti yra paprasta komandų eilutės programa, skirta pervardyti kelis failus vienu metu sistemoje „Linux“. Galite naudoti jį kartu su paieškos įrankiu, norėdami pervardyti visus failus ar pakatalogius tam tikrame kataloge į mažąsias raides taip:

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

Aukščiau pateiktoje komandoje naudojamų parinkčių paaiškinimas.

  • -depth – kiekvieno katalogo turinys pateikiamas prieš patį katalogą.
  • -n 1 – nurodo xargs naudoti daugiausia vieną argumentą komandų eilutėje iš rasti išvesties.

Pavyzdinis išvestis kataloge Failai pervadinę failus ir pakatalogius į mažąsias raides.

Kitas alternatyvus būdas scenarijuje naudoti paieškas ir mv komandas, kaip paaiškinta toliau.

2. „Shell Script“ komandų find ir mv naudojimas

Pirmiausia sukurkite savo scenarijų (galite pavadinti jį kaip tik norite):

cd ~/bin
vi rename-files.sh

Tada pridėkite žemiau esantį kodą.

#!/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šsaugokite ir uždarykite failą, tada padarykite scenarijų vykdomąjį ir paleiskite jį:

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

Taip pat galbūt norėsite perskaityti šiuos susijusius straipsnius.

  1. „Viskas yra failas“ ir „Linux“ failų tipų paaiškinimas
  2. fswatch – stebi failų ir katalogų pakeitimus arba modifikacijas sistemoje „Linux“.
  3. Fasd – komandų eilutės įrankis, suteikiantis greitą prieigą prie failų ir katalogų
  4. FSlint – kaip rasti ir pašalinti pasikartojančius failus Linux

Šiame vadove paaiškinome, kaip Linux sistemoje pervardyti visus failus ir katalogus mažosiomis raidėmis. Jei atsiranda klaidų, susisiekite su mumis naudodami toliau pateiktą atsiliepimų formą. Taip pat galite mums pasiūlyti bet kokius kitus metodus, kaip tai padaryti.