Как перейти к пути, по которому возвращается?

246
Corey Ogburn

Мне любопытно, как я могу изменить каталог на каталог, возвращенный which. Я надеялся на простой лайнер, which whatimlookingfor | cdно он печатает только мой текущий каталог. В командной строке Windows, есть ли быстрый способ сделать это?

0

1 ответ на вопрос

0
ssnobody

Вам нужно будет использовать dirname, чтобы получить каталог того, что вы ищете, с которым.

cd `dirname \`which whatimlookingfor\`` 

Обратите внимание на использование backtick, а не кавычек или что-то еще.

В Windows, где у вас может не быть доступа к bash через cygwin или MSys, вы можете использовать powershell, а не cmd.exe, чтобы выполнить то же самое.

Подстановка в powershell выполняется через $( )вашу команду, которая может выглядеть примерно так:

cd $(dirname $(which whatimlookingfor)) 

Предполагая, что у вас есть двоичный файл dirname, также доступный в пути.

Пробовал это, и это близко. То, что я забыл о `which`, это то, что он также содержит файл в пути. Поэтому, если я вызываю `which xcopy`, я получаю` C: \ Windows \ system32 \ xcopy.EXE`. Как я могу удалить файл и просто указать путь? Corey Ogburn 10 лет назад 0
Ваше возвращение из которого указывает, что вы используете Windows. Я не слишком уверен насчет вложенных операторов backtick в cygwin и т.п., поэтому вам, возможно, придется изучить это, если вышеприведенное не сработает. Выше прекрасно работает для меня из оболочки Bash на Linux. ssnobody 10 лет назад 0
Я не думаю, что обратные пометки помогают на окнах ... Мне может понадобиться еще один вопрос. Corey Ogburn 10 лет назад 0