Salve a tutti.
Devo spostare dei files mp3 (tanti) da una dir del computer ad una microSD.
I files li ho organizzati sul pc in ordine alfabetico del nomefile.
Quando li copio in blocco sulla SD con Nautilus e poi inserisco la SD nel lettore musicale la sequenza di esecuzione e’ randomica.
In altri termini il lettore li legge per data di scrittura e non per ordine alfabetico.
Domanda: come si fa a imporre a Nautilus di scrivere i singoli files in successione temporale coerente con l’ordine alfabetico?
PS: provando a copiarne qualcuno singolarmente uno dopo l’altro nell’ordine alfab., il lettore li legge poi in quest’ordine voluto.
ti fai uno script shell, con un qualsiasi filemanager non credo si possa impostare l’ordine
for j in `ls *.mp3 | sort`; do echo $j; done;
sostituisci l’echo con il cp ed il gioco è fatto
Molto bene, proprio quello che cercavo; ma c’e’ il problema che nel nome dei files ci sono dei blanks che lo script interpreta come ritorno a capo nella lista e quindi il cp (al posto dell’echo) non trova il file da copiare.
A questo punto come dire allo script di considerare tuttuno il nome con i blanks ? Oppure bisogna lanciare un pre-script per sostituire tutti i blanks ad es. con un “underscore”?
script rimozione spazi e sostituzione con underscore:
#!/bin/bash
directory=$1
find $1 -maxdepth 1 -type f -print0 |\
xargs -0 -n1 bash -c \
'newname=${0// /_};if ! -e $newname
]];then eval mv \"$0\" $newname;fi;'
creati un file sh con il seguente codice di esempio
#/bin/bash
OIFS="$IFS"
IFS=$'\n'
for j in `ls *.txt | sort `
do
echo $j
done
IFS="$OIFS"
prova prima con l’echo e poi con copie dei file per evitare di perderti qualcosa nei test.
Grazie a Virus e Halloween. Adesso cerchero’ di decrittare i loro script per capire come funzionano e provarli…
ciao e faccio sapere
ls *.mp3 | sort | while read FILE; do cp "$FILE" "/run/media/vattelappesca/nomeDellaCartellaDiDestinazione"; done
Mettendo tra virgolette la variabile “$FILE” imponi che venga considerata un unico parametro, anche se contiene degli spazi.
Ok! provato comando di Marcomotta (che ho capito ) e funziona molto bene!
Grazie comunque a tutti per i suggerimanti e gli ottimi scripts proposti (che devo studiare bene per usarli in alternativa).
ciao
Volendo essere pignoli, cambiare gli spazi nel nome con degli underscore (oltre a richiedere uno script più complicato) ha in sé un piccolo (forse improbabile) bug: se nella cartella sorgente fossero presenti, per esempio, i files “Canzone 1.mp3” e “Canzone_1.mp3”, dopo la sostituzione essi avrebbero lo stesso nome, per cui copiando il secondo sovrascriveresti il primo.
Molto giusto, grazie