Repository 32bit  Forum
Repository 64bit  Wiki

bash rinominare file

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
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 della regola 5 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 21: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: 993
Iscritto il: lun gen 30, 2006 22:08
Località: milano
Slackware: slackware-14
Kernel: 3.10.5
Desktop: i3

Re: bash rinominare file

Messaggioda targzeta » dom mag 01, 2011 21:29

Prova a quotare la variabile "$i"

Emanuele
Linux Registered User #454438
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: 6185
Iscritto il: gio nov 03, 2005 14: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 21:36

grazie , funziona :D

potresti spiegarmi perchè?
grazie ancora
Avatar utente
Toni
Linux 2.6
Linux 2.6
 
Messaggi: 993
Iscritto il: lun gen 30, 2006 22:08
Località: milano
Slackware: slackware-14
Kernel: 3.10.5
Desktop: i3

Re: bash rinominare file

Messaggioda targzeta » dom mag 01, 2011 21: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
Linux Registered User #454438
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: 6185
Iscritto il: gio nov 03, 2005 14: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:27

:thumbright:
Avatar utente
Toni
Linux 2.6
Linux 2.6
 
Messaggi: 993
Iscritto il: lun gen 30, 2006 22:08
Località: milano
Slackware: slackware-14
Kernel: 3.10.5
Desktop: i3


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti

cron