Prejmenovani adresaru - SOLVED

Alexandr Malusek malusek na hroch.ujf.cas.cz
Středa Duben 19 18:11:28 CEST 2000


Jan.Korinek na compaq.com (Korinek, Jan) writes:

> Takze reseni jem pouzil nasledujici :-)
> 
> #!/usr/bin/ksh
> find . -type d | sort -r > DIRS.TMP
> for i in `cat DIRS.TMP | grep "/"`
> do
> pre=`echo $i | sed "s/\/[^/]*$/\//"`
> to=`echo $i | tr "/" "\n" | tail -1`
> to=$pre`echo $to | tr [:upper:] [:lower:]`
> echo FROM $i TO $to
> mv $i $to
> done
> rm DIRS.TMP

Nejde o to napsat to jakkoliv - programy by se mely psat _prehledne_ a
s ohledem na dostupne "resources". Tyto pozadavky vyse uvedeny skript
nesplnuje. Abych rekl pravdu, tak se mi to nelibilo natolik, ze jsem
napsal jinou verzi. Nevim, jestli funguje (netestoval jsem ji), ale
rozhodne je prehlednejsi :-).

#!/bin/ksh

function prejmenuj {                             # ./D1/D2
  path=${1%/*}                                   # ./D1
  NAME=${1##*/}                                  # D2
  name=$(print $NAME | tr [:upper:] [:lower:])   # d2
  if [[ $NAME != $name ]] then
    print $path/$NAME "->" $path/$name
    # mv $path/$NAME $path/$name
  fi
}

find . -type d -depth -print \
  | while read dirname; do
      prejmenuj $dirname;
    done

--
A. Malusek  (malusek na ujf.cas.cz)
UJF AV CR


Další informace o konferenci Linux