Come convertire un percorso di Windows (con barre rovesciate) in formato Unix su Babun / Cygwin


8

Sto usando Windows e sto scrivendo script di shell per essere eseguito su Babun (un POSIX api).

Devo leggere un percorso da una variabile d'ambiente, $ USERPROFILE e convertirlo in stile unix (sostituisci \ by /, c: \ by / c /) in modo da poterlo utilizzare in seguito nello script.

Il problema è ogni volta che faccio eco al contenuto di $ USERPROFILE, le barre rovesciate vengono interpretate come caratteri di escape e ottengo un risultato inaspettato (le lettere "casualmente" si trasformano in caratteri speciali come \ n, \ f, ecc.). Quindi non posso farne eco in sed per esempio.

Risposte:


11

Cygwin fornisce l' cygpathutilità molto utile per convertire percorsi in formato Unix e Windows. Dalla guida per l'utente di Cygwin

Il cygpathprogramma è un'utilità che converte i nomi di file nativi di Windows in percorsi in stile POSIX Cygwin e viceversa. Può essere utilizzato quando un programma Cygwin deve passare un nome file a un programma Windows nativo o prevede di ottenere un nome file da un programma Windows nativo. In alternativa, è cygpathpossibile generare informazioni sulla posizione di importanti directory di sistema in entrambi i formati.

Può convertire in / da percorsi in formato Windows o DOS, ad esempio per stampare il formato Unix di un percorso Windows:

$ cygpath -u "$USERPROFILE"
/cygdrive/c/Users/anthony

Consultare la Guida dell'utente di Cygwin per tutti i dettagli e cygpath --helpper le informazioni di base sull'utilizzo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.