Re: pushd ... popd

From
Boris Rudakov (2:5054/9.4)
To
Eugene M. Zheganin ()
Date
2003-09-28T13:08:56Z
Area
PERM.UNIX
Hello Eugene!

26 сен 03 18:31, you wrote to me:

 EZ>  Приветствую, Boris!

 EZ>  26 Sep 03 в 17:48, Boris Rudakov -=> Eugene M. Zheganin о "Re: pushd
 EZ> ... popd":

 BR>> PUSHD - это "запомнить текущий каталог и сделать cd"
 BR>> POPD  - "вернуться туда, откуда был последний PUSHD"

 BR>> Вместе - стек, число уровней вложенности не ограничено.

 BR>> Эквивалентной замены шелловскими средствами я придумать не могу
 BR>> :( Никакие переменные или же утилитки никак помочь не могут :(
 BR>> Либо это в самом шелле реализовано, либо - в морг :(

 EZ> Не вижу реально никакого применения. Совершенно. На моей памяти ты
 EZ> единственный человек, кому это надо.

Это полезно когда у тебя есть скрипт, который расчитан на работу из определенного каталога куда надо сделать cd, а потом вернуться. Саоме простое - сделать туда pushd не задумываясь где ты был, а потом вернуться по popd.

Присваивать
  __olddir=`pwd`
....
  cd $__olddir
  unset __olddir

не выход:
 * идет лесом рекурсия
 * если делать вызов скрипта дочерним шеллом, идет лесом возможность из него
   устанавливать переменные
 * многословно. pushd ... popd - компактнее :)

Т.е. скрипт берет, пушается в каталог куда ему надо ,делает чего хочет, а потом попается туда, где был. Не разбираясь где это, не парясь с переменными - просто аозвращается туда где был. Удобно.

Акромя, это же самое удобно и в интерактиве. Сижу я в каталоге с длиииииным именем и нужно на секундочку прыгнуть в другой каталог, там повошкаться и прыгнуть обратно. Можно, можно поставить переменную в pwd, сходить куда надо, а потом - cd $переменная назад. Но, опять же, pushd ... popd - короче. И имя переменной помнить не надо :)

 EZ> Но хоть убей, не понимаю, зачем это.

В частности, у меня как-то была софтинка, нашпигованная существенно-геморойными батниками. Не такими геморройными как гнутые сборочно/инсталяционные скрипты, но близко. Я их сильно упростил pushd ... popd, а за одно - сделал не зависящей от фиксированного пути, где она хотела лежать. В фидошном пакете, который у меня был до хпт, тоже было полно pushd ... popd. Надо потоссить: прыгнул в тоссер (не разбираясь откуда), поколупался и - обратно.

Удобно. В НТе же не зря эту феню ввели.

Речь не о том, что без этой фени жить нельзя. Речь о том, что с ней - удобнее :) Хорошая феня - карман не тянет :)

 EZ>                                     На этом остаюсь искренне Ваш,
 EZ> Евгений.

Борис Рудаков,               Как увидишь Сникерс - ты не ешь его,
BBR                          он с самим Манделлой цвета одного...

--- Be happy: BBR is looking at you !
 * Origin: АлкАголь малыми дозами безвреден в любых количествах (2:5054/9.4)