Wie kann man den Pfad von welchem ​​zurückgeben?

368
Corey Ogburn

Ich bin neugierig, wie ich das Verzeichnis in das von zurückgegebene Verzeichnis ändern kann which. Ich hatte auf einen einfachen Liner gehofft, which whatimlookingfor | cdaber es druckt nur mein aktuelles Verzeichnis. Gibt es in einer Windows-Eingabeaufforderung eine schnelle Möglichkeit, dies zu tun?

0

1 Antwort auf die Frage

0
ssnobody

Sie müssen dirname verwenden, um das Verzeichnis der gesuchten Sache zu erhalten.

cd `dirname \`which whatimlookingfor\`` 

Beachten Sie die Verwendung von Backtick anstelle von Anführungszeichen oder etwas anderem.

Unter Windows, wo Sie möglicherweise keinen Zugriff auf bash über cygwin oder MSys haben, können Sie Powershell anstelle von cmd.exe verwenden, um dasselbe zu erreichen.

Die Ersetzung in Powershell erfolgt über, $( )sodass Ihr Befehl in etwa wie folgt aussehen kann:

cd $(dirname $(which whatimlookingfor)) 

Vorausgesetzt, Sie verfügen über den Pfadnamen binname.

Ich habe es versucht, und es ist nah. Etwas, was ich vergessen habe, ist, dass die Datei auch im Pfad enthalten ist. Wenn ich also "which xcopy" anrufe, bekomme ich "C: \ Windows \ system32 \ xcopy.EXE". Wie kann ich die Datei entfernen und nur den Pfad haben? Corey Ogburn vor 10 Jahren 0
Ihre Rückkehr zeigt an, dass Sie Fenster verwenden. Über verschachtelte Backtick-Operatoren in Cygwin oder dergleichen bin ich mir nicht ganz sicher. Daher müssen Sie möglicherweise untersuchen, ob dies nicht funktioniert. Oben funktioniert gut für mich von bash shell auf linux. ssnobody vor 10 Jahren 0
Ich glaube nicht, dass die Backticks an Fenstern helfen ... Ich könnte eine andere Frage brauchen. Corey Ogburn vor 10 Jahren 0