Cygwin: Verwenden einer Pfadvariablen, die einen Windows-Pfad enthält (mit einem Leerzeichen darin)
Möchte ich hinzufügen, dass einige Verzeichnisse auf meinem WEG.
Leider sind diese Verzeichnisse befinden sich im windows-Pfad mit Leerzeichen (wie " Dokumente und Einstellungen)
Habe ich erfolglos versucht:
Erstellen Sie eine variable:
43598811@E250BZD20015026 ~
$ winhome="/cygdrive/c/Documents\ and\ Settings/43598811/"
43598811@E250BZD20015026 ~
$ cd $winhome
bash: cd: /cygdrive/c/Documents\: No such file or directory
43598811@E250BZD20015026 ~
$ cd "$winhome"
bash: cd: /cygdrive/c/Documents\ and\ Settings/43598811/: No such file or directory
Erstellen eines alias:
43598811@E250BZD20015026 ~
$ alias winhome="/cygdrive/c/Documents\ and\ Settings/43598811/"
43598811@E250BZD20015026 ~
$ winhome
bash: /cygdrive/c/Documents and Settings/43598811/: is a directory
43598811@E250BZD20015026 ~
$ cd winhome
bash: cd: winhome: No such file or directory
Verwenden Sie ein weiches link:
es funktioniert... aber ich will nicht von dieser
Jede Anregung ?
InformationsquelleAutor der Frage Guillaume | 2010-12-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies funktioniert:
InformationsquelleAutor der Antwort RobS
Können Sie
cygpath
zum konvertieren von Windows-Pfad in der Cygwin-kompatibel zu POSIX-Pfade. Es kann auch die Ausgabe der Standorte von einigen speziellen system-Ordner (z.B. Windows-home-Verzeichnis, desktop, eigene Dateien, etc...)Hier sind einige relevante links zu Cygwin-Dokumentation:
InformationsquelleAutor der Antwort Amro
Wenn du den Pfad in Anführungszeichen, die Sie nicht brauchen, um die Flucht der Räume, aber, wenn Sie anrufen
cd
werden, müssen Sie die variable selbst in Anführungszeichen, um die ordnungsgemäße Verhalten.Also deine variable sollte einfach erklärt werden, wie diese, aber nennt der Verwendung von Anführungszeichen um die variable:
Dies ist aufgrund der Art der Variablen ersetzt, die in der shell. Wenn Sie
cd winhome
ohne die" "
, es endet auf der Suche wie dieses, sobald der variable substituiert:Dieser wird analysiert, wie vier separate Argumente:
cd
,/cygdrive/c/Documents
,and
, undSettings/43598811/
, das macht keinen Sinn, die Schale, weil das Verzeichnis/cygdrive/c/Documents
existiert nicht.InformationsquelleAutor der Antwort Chris Cooper
Wahrscheinlich sehr spät jetzt, aber ich eine andere Lösung, um dieses problem für die
Letzte mehrere Jahre. In der cygwin.BVT I-Präfix ein paar Erklärungen zu erstellen
virtuelle Laufwerke mit
subst
Befehl. Mit diesem Befehl können Sie ersetzen Sie es mit einemLaufwerksbuchstaben für wirklich lange Wege
(und diejenigen, die mit Sonder-oder Leerzeichen Gewinnen Zeichen). Später können Sie sich beziehen
Sie diese von Ihrer shell und scripts direkt als
/cygdrive/x/
,/cygdrive/y/
, undso weiter. Dies hilft auch bei der immer Verknüpfungen zu diesen Ordnern aus windows
shell-wie-explorer etc.
Auf einem verwandten beachten, wenn Sie wollen, können Sie loswerden der
/cygdrive
Präfix mithilfemount
Befehl von Cygwin. sehenmount --help
.InformationsquelleAutor der Antwort NandR
Für den Zugriff auf den Pfad /cygdrive/c/Programme (x86), verwenden Sie das Zeichen"\".
Guten Tag!
InformationsquelleAutor der Antwort mariofertc
Verwenden
cygpath --mydocs
.Anderen speziellen Ordnern nach
cygpath --help
:InformationsquelleAutor der Antwort Patrick Bergner
Ich bin ein absoluter cwywin noob - aber sicherlich ist das erstellen einer symbolischen Verknüpfung zurück zu Ihrem windows home hat eine einfache erste Schritt?
ie:
dann kann man nur:
könnten Sie das gleiche tun für Ihren desktop etc... und keine sorgen mehr über die gewinnen/cyg-Konvertierung?
Bearbeiten jetzt hab ich verwendet
cygpath
- ich glaube, das ist das tool zu verwenden - mit oder ohne symlinks, es ist ein nettes kleines Paket für den Umgang mit der *nix/wind-Pfad disjunktInformationsquelleAutor der Antwort ErichBSchulz
Den Ansatz mit der variable sollte funktionieren, wenn man es definiert, richtig. Deins enthält Schrägstriche für keinen guten Grund.
InformationsquelleAutor der Antwort Ringding