Newsgroup: it.comp.os.linux.iniziare
Titolo: Rinominare piu' file

Salve, ho un problema: mv sposta o rinomina un file, nel caso siano
selezionati piu' file come sorgente devo dare come destinazione una
directory (se ho letto bene le man pages). A questo punto mi chiedo:
come rinomino un gruppo di file? Ho una versione di AppuntiLinux
masterizzata male e tutti i file sono .htm invece che .html mentre i
link tra pagine fanno naturalmente riferimento a file .html, cosi' mi
sono detto rinominiamo tutto e via, ma... Non so come fare. Aiuti?
Ah, la butto li': in /etc/sysconfig/keyboard c'e' scritto "it-ibm.map"
se ricordo bene, ma io non ho sul disco il file it-ibm.map... Cosi'
non posso fare la @ e il #.
Grazie per l'attenzione.
-- 
manuel 'fmf' ferrero

 come rinomino un gruppo di file? Ho una versione di AppuntiLinux
for name in [ $* ]; do
if [ -f $name ]; then
    if [ $name = *.htm ]; then
         mv $name *.sql
    fi
fi
done    
O lo scrivi direttamente alla tastiera o ti fai un mini-script.
Davide

 non posso fare la @ e il #.
Per vedere che cosa hai: find /usr/lib/kdb -name 'it*.map*'
(se i tuoi file non sono in /usr/lib/kdb, prova /usr).
C'e' anche un Italian-HOWTO che potrebbe esserti utile.
-- 
Stefano - Hodie Nonis Martiis MMI est

Per vedere che cosa hai: find /usr/lib/kdb -name 'it*.map*'
allor aieri sera avevo guardato (sono a lavoro ora) e ho in
/usr/lib/kbd/keymaps/i386/qwerty/ ci sono it-ibm.map.gz, it.map.gz e
it2.map.gz: ho provato a sostituirli in sysconfig/keyboard, ma non
sembra andare...
Ora pero' ho trovato su provolinux qualcosa da provare, grazie.
-- 
manuel 'fmf' ferrero

 l'ausilio di script ad hoc. O sbaglio approccio io?
Il fatto e' che sotto Dos/Win, l'estensione non fa' parte del nome
del file, quindi ren *.htm *.html ha un certo significato, mentre
sotto *nix il punto non e' altro che un carattere qualunque, quindi
la stessa espressione ha un significato completamente diverso.
Davide

sono detto rinominiamo tutto e via, ma... Non so come fare. Aiuti?
$ cd AppuntiLinux
$ for f in *.htm; do mv $f $f"l"; done
Nota le virgolette intorno alla l, se non le metti non funziona perche' la
variabile fl non esiste.
ciao
-- 
Il mio vero indirizzo e':
        marco   lazzarotto   tiscalinet   it
              .            @            .
Non rispondero' se scrivi a 
nar...@inwind.it
, quindi non scriverci! ;-D

$ for f in *.htm; do mv $f $f"l"; done
Tnx.
Questo e quello di Davide Bianchi sono script di bash, giusto?
-- 
manuel 'fmf' ferrero

 Questo e quello di Davide Bianchi sono script di bash, giusto?
Si', scusa non era specificato...
Davide

Si', scusa non era specificato...
Nulla, e' solo che mi sopn reso conto che devo prorpio tira giu'
l'HowTo sullo scripting in bash... Non posso andare da nessuna parte
senza.
-- 
manuel 'fmf' ferrero



[barbi@server barbi]$ apropos rename
mv                   (1)  - move (rename) files
ren                  (1)  - rename multiple files
Mi pare fosse su freshmeat.
Ciao.
-- 
.oooO
(   )
 \ ( Barbi
  \_)

di script ad hoc. O sbaglio approccio io?
Ci sono  comunque script gia` fatti.  E ricordati che per  linux il nome
del file non ha alcun legame con il tipo...
-- 
Renato "Hitman" Salzano - Home Page in ricostruzione 
e-posta: sonicblast (at) 
inwind.it
 / Xena:TWP fan
Powered by AMD K6-350 & Debian Woody - 100% Wintel free
---> WebDesigner e SysAdmin di 
http://www.italservicesnc.it
 <---

ren                  (1)  - rename multiple files
Da me (Deb) ho:
RENAME(1p)       Perl Programmers Reference Guide      RENAME(1p)
       For example, to rename all files matching *.bak to strip
       the extension, you might say
               rename 's/\e.bak$//' *.bak
       To translate uppercase names to lower, you'd use
               rename 'y/A-Z/a-z/' *
30/Apr/2000            perl 5.005, patch 03
Comunque io l'avevo fatta mooolto meno potente con questo script "mov":
#!/bin/bash
if [ -z "$1" -o "$1" = "--help" ]; then
echo " ***"
echo "Sintassi:   mov old new"
echo ""
echo "NON mettere il punto per l'estensione!"
echo "Esempi:"
echo "mov zip tgz"
echo "questo cambia TUTTI i file nella dir corrente da .zip a .tgz"
echo "E quindi anche:"
echo "mov tar.gz zip  ...   da  pippo.tar.gz  a  pippo.zip"
echo " ***"
exit 1
fi
for j in ./*.$1
do mv $j `echo $j|cut -f2 -d.|cut -c2-`.$2
done
-- 
Ci sentiamo  |  Remigio Zedda  || Attenzione! campo "From:" alterato
ciao Remigio |                 ||==> E-mail: 
remi...@tiscalinet.it
-------------|      ..si` d'accordo.. ma con la Deb e` un'altra cosa!
/* Linux 2.2.17 su Debian GNU/Linux 2.2 Potato */