Fájlok átnevezése kisbetűsre linuxon (rekurzív bash script)

Minden különleges idegen karaktert nem ismer, de a rename hívás után megadható a többi karakter mintájára új is.

  1. #!/bin/bash
  2.  
  3. if [ $# -lt 1 ];
  4. then
  5.         echo "Add meg a mappa útvonalát!";
  6.         exit 1
  7. fi
  8.  
  9.  
  10. function getftype()
  11. {
  12.         str=`ls -dl "$1"`
  13.         echo ${str:0:1}
  14. }
  15.  
  16. function tolowercase()
  17. {
  18.         cd "$1"
  19.         for i in *
  20.         do
  21.                 ftype=`getftype "$i"`
  22.                 if [ "$ftype" == "d" ];
  23.                 then
  24.                         tolowercase "`pwd`/$i"
  25.                 fi
  26.         done;
  27.         rename 'y/A-ZÁÉÍÓÖŐÚÜŰ/a-záéíóöőúüű/' *
  28.         cd ..
  29. }
  30.  
  31. cd "$1"
  32. tolowercase "`pwd`"

Használata:
Másold a fenti forráskódot egy tolcdc.sh ( to lowercase directory content ) nevű fájlba, majd futtasd terminálban a következőképpen.

./tolcdc.sh ./mappautvonala

Ahol a ./mappautvonala annak a mappának az útvonala, amiben rekurzívan szeretnéd átnevezni a a fájlokat, mappákat kisbetűsre.

Megosztás/Mentés

Új hozzászólás