Вы можете использовать опцию cdable_vars
bash
, которая позволяет вам позвонить по номеру cd
с именем переменной. Если аргумент, переданный в cd
, не является каталогом, то предполагается, что это имя переменной, а значение переменной используется как целевой каталог.
Пример использования: если вы поместите это в ваш ~/.bashrc
:
alias show='cat ~/.dirs'
save() {
here=`pwd`
if (($# == 0)); then
name=`basename $here`
elif (($# > 1)); then
echo "usage: save [<name>]"
return -1
else
name=$1
fi
sed -i -e "/^$name=/d" ~/.dirs
echo "$name=\"$here\"" >> ~/.dirs
source ~/.dirs
}
source ~/.dirs
shopt -s cdable_vars
Затем, когда текущий каталог является тот, который вы хотите запомнить, просто введите:
save my_dir
и следующий время, в которое вы хотите пойти, просто введите:
cd my_dir
Как долго нет my_dir
, где вы вводите текст, он приведет вас туда, куда вы хотите. Аргумент save
не является обязательным. Если вы не предоставите его определяются короткая рука будет базовым именем текущего каталога:
cd /Desktop/../../../../repo_folder
save
определит repo_folder
как короткую руку для этого каталога.
Файл ~/.dirs
содержит определения переменных для ваших любимых каталогов. Если хотите, вы можете отредактировать его вручную. Эти определения оцениваются каждый раз при запуске новой оболочки bash
. Помните, что они могут перезаписать другие, которые вам также нужны. Если это проблема, я советую вам выбрать уникальные короткие руки (my_dir_repo_folder
вместо repo_folder
). И помните вторую ловушку, когда вы набираете:
cd foo
вы можете пойти либо в местном подкаталоге foo
, если есть один или в каталог, для которого вы определили foo
короткую руку. И есть третий: если вы переопределите короткую руку, предыдущая будет перезаписана. Итак, этот трюк удобен, но как-то опасен, потому что, когда вы cd
вы больше не знаете, действительно ли вы там, где хотите. Настройка подсказки для отображения текущего пути может быть хорошей идеей.
Алиас show
- это всего лишь способ перечислить все имеющиеся в настоящее время короткие руки.
Взгляните на [эту Unix Stack бирже] (HTTP : //unix.stackexchange.com/questions/1469/bash-directory-shortcuts). –
Я голосую, чтобы закрыть этот вопрос как не относящийся к теме, потому что вопросы об использовании Unix не являются само по себе и лучше подходят для [Unix & Linux] (http://unix.stackexchange.com). – kojiro
Я не знал о существовании Unix & Linux.Виноват. – intboolstring