TUTTI i filesystem hanno dei carateri RISERVATI che NON POSSONO o NON DOVREBBERO far parte del nome.
/ SLASH e \ BACKSLASH servono per rappresentare il PATH
. (DOT/PUNTO) RAPPRESENTA la directory CORRENTE
.. (DOT DOT/PUNTO PUNTO) rappresenta la directory PARENT
il punti viene anche usato per separare parti del nome del file, classicamente in Windows si usa per l'estensione che indica il TIPO di file.
[e personalmente ci metterei anche lo SPAZIO, altro carattere disastroso, sopprattuto in Linux che lo supporta a meta ;-) ]
Classicamente questi problemi si presentano quando si cerca di far interagire sistemi operativi di tipo diverso.
Esistono dei meccanismi (COMPLICATI!) per supportare questi casi
MA
introducono un livello di complessita' non da poco.
Per esempio, in Windows e' possibile usare UNC (Universal Naming Convention)
https://en.wikipedia.org/wiki/Path_(computing)#UNC
Altro esempio, in Windows ci sono alcuni nomi di file RISERVATI come “COM” (il nome della seriale):
SE un'applicazione (classicamente qualcosa che arriva da Linux) crea un file con quel nome, per cancellarlo E' UN BAGNO DI SANGUE.
Diciamo che nel 99.99999% dei casi questi problemi SI POSSONO EVITARE in modo BANALE: basta usare nomi DECENTI
In altri tremini, NON HA SENSO spaccarsi la testa per gestire questi casi:
si dice A CHI DI DOVERE che il nome della directory/file NON DEVERE USARE caratteri/nomi RISERVATI, e che se ne facciano una ragione !
L'altra soluzione e' quella di cambiare (A MANO) i nomi che danno problemi.
---
Nota: il tuo esempio SEMBRA PROPRIO un UNC.
Ma e' IMPOSSIBILE che i \ siano parte del nome! Controlla bene.
Esiste un caso in cui \ SEMBRA essere parte del nome di un file, MA E' SOLO un'impressione:
Linux, in CERTI CASI, mostra il BACKSLASH DAVANTI ad uno spazio.
Ma in questo caso \ e' usato SOLO COME CARATTERE DI ESCAPE, cioe' serve a dire SOLO che il prossimo carattere (in genere lo spazio) E' PARTE DEL NOME.
–---
ci sono riuscito: Linux, BASH
>> echo ciccio >> ‘a b.txt’
>> rm [premo tab]
ed esce:
>> rm a\ b.txt