Pull to refresh

Стек директорий. Снова простая вещь + дополнения

Reading time 1 min
Views 3.3K
Мало кто знает о таких командах bash как pushd и popd.
Они позволяют работать со стеком директорий.
pushd $DIR позволяет перейти в $DIR и добавить текущую в стек. При каждом выполнении команды стек пополняется текущей директорией.
popd позволяет перейти к последней директории в стеке и извлечь её оттуда. Таким образом после каждого выполнения команды стек уменьшается на одну директорию, а текущая директория становится директорией на вершине стека.

Например:
[user@laptop ~]
basg# cd /
[user@laptop /]
bash# pushd /var/log/
/var/log /
[user@laptop log]
bash# pushd /usr/share/
/usr/share /var/log /
[user@laptop share]
bash# popd
/var/log /
[user@laptop log]
bash# popd
/
[user@laptop /]
bash#



Эта вещь крайне удобна в скриптах, когда не хватает простого «cd -» (которое, к слову, переходит к директории, которая была перед последним выполнением команды cd), а также в повседневной работе в консоли.

Дополнения

от CycaHuH
> А как можно просмотреть стек?

echo ${DIRSTACK[*]}

${DIRSTACK[0]} — текущая директория


от UUSER
`cd` переход в домашнюю директорию пользователя.
`cd ~user` переход в домашнюю директорию другого пользователя.
`cat /proc/cpuinfo`
`watch !!` подставит предыдущую команду текущей.
`!123` выполнит команду под номером из bash_history.
`sl[ctrl+t]` поменять местами два символа.
Tags:
Hubs:
+47
Comments 39
Comments Comments 39

Articles