Repository 32bit  Forum
Repository 64bit  Wiki

bash rinominare file

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Specificare sempre il tipo di shell (bash, sh, csh, etc...)
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza dell'ultima regola porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

bash rinominare file

Messaggioda Toni » dom mag 01, 2011 22:26

ciao a tutti
purtroppo sono asciutto di shell scripting

Il mio problema è il seguente :

voglio rinominare un gruppo di file togliendo i primi enne caratteri

Codice: Seleziona tutto
toni@darkstar:~/test$ ls
prova\ 001.mp3  prova\ 002.mp3  prova\ 003.mp3
toni@darkstar:~/test$ for i in *.mp3; do mv $i ${i:6} ; done
mv: target `001.mp3' is not a directory
mv: target `002.mp3' is not a directory
mv: target `003.mp3' is not a directory


cosa mi sfugge? #-o
grazie a tutti
Avatar utente
Toni
Linux 2.6
Linux 2.6
 
Messaggi: 984
Iscritto il: lun gen 30, 2006 23:08
Località: milano
Slackware: slackware-14
Kernel: 3.9.2
Desktop: xfce

Re: bash rinominare file

Messaggioda targzeta » dom mag 01, 2011 22:29

Prova a quotare la variabile "$i"

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 5931
Iscritto il: gio nov 03, 2005 15:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: bash rinominare file

Messaggioda Toni » dom mag 01, 2011 22:36

grazie , funziona :D

potresti spiegarmi perchè?
grazie ancora
Avatar utente
Toni
Linux 2.6
Linux 2.6
 
Messaggi: 984
Iscritto il: lun gen 30, 2006 23:08
Località: milano
Slackware: slackware-14
Kernel: 3.9.2
Desktop: xfce

Re: bash rinominare file

Messaggioda targzeta » dom mag 01, 2011 22:53

La spiegazione veloce è che la tua variabile conteneva degli spazi e se vuoi che la bash la consideri tutt'una devi quotare tra doppi apici. In pratica il tuo comando veniva interpretato come:
Codice: Seleziona tutto
mv prova 001.mp3 001.mp3
ovvero come se stessi spostando i file 'prova' e '001.mp3' nel file '001.mp3'. L'errore è lì, solo che la bash, dato che tu gli hai chiesto di spostare 2 file, lamenta il fatto che il file di destinazione non è una directory.

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 5931
Iscritto il: gio nov 03, 2005 15:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: bash rinominare file

Messaggioda Toni » dom mag 01, 2011 23:27

:thumbright:
Avatar utente
Toni
Linux 2.6
Linux 2.6
 
Messaggi: 984
Iscritto il: lun gen 30, 2006 23:08
Località: milano
Slackware: slackware-14
Kernel: 3.9.2
Desktop: xfce


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron