Problemi con nomi di file copiati da Win!

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
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.
Rispondi
ChriD
Linux 2.x
Linux 2.x
Messaggi: 362
Iscritto il: dom 30 ott 2005, 16:43

Problemi con nomi di file copiati da Win!

Messaggio da ChriD »

Ho notato un problemuccio.....

ho copiato vari files da una partizione su cui è installato windows.....

il problema consiste nei backslash \

Credo il problema sia legato al fatto che i nomi dei files in win possono essere anche chiamati con spazi mentre in linux no, per cui ogni volta che devo chiamare un files devo mettere un backslash prima dello spazio.....

Esempio:

In win: Ciao - Bella ciao.mp3
per chiamarlo da linux: Ciao\ -\ Bella ciao.mp3

C'è un modo per risolvere oppure devo rinominare file per file?????

Vlk
Linux 3.x
Linux 3.x
Messaggi: 671
Iscritto il: mer 9 feb 2005, 0:00

Messaggio da Vlk »

Hai sbagliato: in Linux dovresti chiamarlo Ciao\ -\ Bella\ ciao :)
Comunque non c'entra nulla Windows. Un qualsiasi file composto da due nomi separati da uno spazio, su Linux si mette \ dopo il primo nome e quindi si da lo spazio. Questo serve al sistema che altrimenti crederebbe di trovarsi davanti i due files "Bella" e "ciao". Ovviamente se apri Kde, Gnome o un qualsiasi altro windows manager vedrai il nome senza i \, ma se la stessa directory la apri da shell e dai ls tutti i file avranno \. Ciao
p.s. perdonate l'itagliano

ChriD
Linux 2.x
Linux 2.x
Messaggi: 362
Iscritto il: dom 30 ott 2005, 16:43

Messaggio da ChriD »

Vlk ha scritto:Hai sbagliato: in Linux dovresti chiamarlo Ciao\ -\ Bella\ ciao :)
Comunque non c'entra nulla Windows. Un qualsiasi file composto da due nomi separati da uno spazio, su Linux si mette \ dopo il primo nome e quindi si da lo spazio. Questo serve al sistema che altrimenti crederebbe di trovarsi davanti i due files "Bella" e "ciao". Ovviamente se apri Kde, Gnome o un qualsiasi altro windows manager vedrai il nome senza i \, ma se la stessa directory la apri da shell e dai ls tutti i file avranno \. Ciao
p.s. perdonate l'itagliano
Si hai ragione......

l'errore era dovuto al fatto che uso il tab e quindi non avevo notato gli altri \\\\
comunque non si potrebbe creare uno script che sostituisce i backslash e lo spazio con un carattere di underscore????

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

Un qualsiasi file composto da due nomi separati da uno spazio, su Linux si mette \ dopo il primo nome e quindi si da lo spazio.
si possono usare anche gli apici doppi e singoli; es:
"Ciao bella ciao" ed a me sembra molto più comodo;

lo script...se ho tempo (e voglia) te lo faccio io! :wink:

first
Linux 3.x
Linux 3.x
Messaggi: 677
Iscritto il: gio 23 giu 2005, 0:00

Messaggio da first »

su un sito ho trovato questo semplice accorgimentoda shell, riporto tale quale tu vedi di modificartelo come credi


2.1.1. Correzione dei nomi di file

Raggruppate tutti i file MP3 in una directory.

Se qualche nome di file contiene spazi, prima convertiteli in underscore:

for i in *.mp3; do mv "$i" `echo $i | tr ' ' '_'`; done

Questo primo passaggio è importante perché, anche se unix permette la presenza di spazi nei nomi di file, la maggior parte dei programmi vengono confusi.

Se i vostri file MP3 provengono da DOS/Windows, potrebbero avere estensioni in maiuscolo. Potete convertire in minuscolo i nomi interi o solo le estensioni. Per avere tutto minuscolo:

for i in *.[Mm][Pp]3; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done

per convertire solo le estensioni:

for i in *.MP3; do mv "$i" "`basename "$i" .MP3`.mp3"; done


qui il link che proporrei fosse messo nell howto di slacky.it perche e molto semplice e chiaro sul come masterizzare da linux

http://it.tldp.org/HOWTO/MP3-CD-Burning/audio.html

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

Codice: Seleziona tutto

#!/bin/bash
#lo script sostituisce gli spazi nei nomi dei files 
#della direcory in cui viene lanciato con _
#
#prima memorizza i nomi dei files in un file di appoggio, poi per ciascun file genera il nuovo nome;
#indi se non esistono nella stessa directory files con il nuovo nome e se il nome 
#contiene effettivamente spazi si opera la sostituzione

ls -1 > /tmp/fileScript.txt
while read valore
do
        nuovoVal=`echo "$valore" | sed 's/\\ /_/g'`
        ls -l ./"$nuovoVal" >/dev/null 2>&1
        if [ \( $? -ne 0 \) -a  \( "$nuovoVal" != "$valore" \)  ];then
                mv "$valore" "$nuovoVal"
        fi      
done</tmp/fileScript.txt      
rm /tmp/fileScript.txt  

Rispondi