Ho un problema con alcuni file nel terminale Linux (Ubuntu), con accenti nei nomi. Ad esempio:Nome file UTF-8 restituito Non trovato nel terminale linux
$ ls dir/
criação.png
Quindi, il terminale restituisce quel file, quindi esiste. Ora vediamo se il file esiste, con questo semplice comando:
$ [ -f criação.png ] && echo "File Exist" || echo "Not Exist"
Not Exist
Come si può vedere, "Non esiste". Ora, ho la stessa cartella e di file su OSX, allora io eseguire lo stesso comando e restituisce questo:
$ [ -f criação.png ] && echo "File Exist" || echo "Not Exist"
File Exist
Conosco un po 'di locale:
$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
su Linux, " Not Exist ", su OSX," File Exist "... Qualcuno, sapete come risolverlo?
Forse questi possono aiutare:
http://nedbatchelder.com/blog/201106/filenames_with_accents.html
http://www.ruby-forum.com/topic/279105
AGGIORNAMENTO - Soluzione
ho finalmente trovato una soluzione a questo problema. È necessario rinominare i file da NFD a NFC, ecco il comando per correggere tutti i file:
cd dir/
convmv -r -i -f utf8 -t utf8 --nfc --notest .
Fonte: http://blog.hbis.fr/2010/08/30/macox-utf8_filenames_normalization/
Il mio problema è anche con nginx. Es: '2012/11/08 17:05:34 [errore] 12102 # 0: * 128 aperto()"/usr/share/nginx/www/wp-content/uploads/2012/09/celular-inclusão- digital.png "non riuscito (2: nessun file o directory), client: 66.249.76.145, server: sito.com, richiesta:" GET/wp-content/uploads/2012/09/celular-inclus% C3% A3o- digital.png HTTP/1.1 ", host:" site.com "' – mateus007
La soluzione è corretta (MacOS usa NFD ma praticamente tutto il resto usa NFC, causando problemi di compatibilità quando MacOS è coinvolto), ma dovresti postarlo come risposta . La tua risposta è più corretta di quella che hai accettato! – Celada
'convmv -r -f iso8859-1 -t utf8 --nfc --notest .' Risolve i miei nomi di file con accento caricato da SFTP da Windows a Linux. –