Rename fajlova

Rasprave u vezi Linux aplikacija.

Moderator/ica: Moderatori/ce

Odgovori
Gigolo

Rename fajlova

Post Postao/la Gigolo »

Kod: Označi sve

#!/bin/bash
cd Download
valid="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-_./"
find . | while read f
 do
j=1
z=`echo ${f//" "/"_"}`
echo $f
        d=$(echo ${#f})
        while [ $j -lt $d ]; do
               c=$(echo ${f:j:1})
                k=`echo $valid | grep -i "$c"`
                if [ "$k" == "" ]; then
  z=`echo ${z//"$c"/"_"}`
                fi
                let j=j+1
      done
  z=`echo ${z//__/_}`
  z=`echo ${z//__/_}`
  z=`echo ${z//__/_}`
  z=`echo ${z//__/_}`
  if [ "$f" != "$z" ]; then
 mv "$f" "$z"
fi
done
# Ako je bilo CANOT STAT poruka ponovi skriptu
Ova skripta mijenja imena fajlova koje ste koristili ranije u windowsima na način da sve neprihvatljive znakove mjenja u _ (podvlaku).
Spremite je u npr. ren.sh i izvodite iz shella sa ./ren.sh
VAŽNO: Gore vidite naredbu cd Download kojom se ulazi u folder Download. Izmjenite to ime u ime svog foldera. NE IZVODITI u čistom /home direktoriju, jer skripta zezne skrivene sistemske fajlove koji počinju točkom.
Pošto skripta preimenuje i podfoldere nakon toga ne prepoznaje fajlove u preimenovanom folderu potrebo je višestruko izvođenje u ovisnosti o broju nivoa podfoldera.
Prije rada backupirajte podatke, a to treba biti stalna praksa a ne povremena.
Netko mi je jednom rekao da je skripta frankenštajnski složena od raznih djelova, ali nema veze. Provjereno radi.
Odgovori