Я ввожу постоянно (использующий вкладку, конечно) абсурдные пути как
cd path/to/the/thing\ that\ I\ need/python/proj/eraseme
Кроме выполнения ln -s
(или некоторый другой тип ln?), там какой-либо другой способ двигаться быстрее? Кроме того, если решение состоит в том, чтобы использовать ln
, есть ли некоторый стандартный путь/место поместить ссылки так для не создания помех моему ~
каталог?
Я не прошу ярлыки только: любое решение, которое помогает с проблемой, "как двигаться", помогло бы.
В ударе, $CDPATH
переменная среды содержит список путей, которые будут искаться каталоги при использовании cd
.
CDPATH=".:~/long path to my projects"
cd eraseme
Некоторые люди используют псевдонимы с этой целью. Попробуйте это, например:
alias cderaseme='cd /home/user/whatever/path/to/the/thing\ that\ I\ need/python/proj/eraseme'
Теперь можно ввести cderaseme каждый раз, когда Вы хотите перейти к тому каталогу. Псевдоним только будет допустим для текущего терминального сеанса, таким образом поместит его в Ваш .bashrc для хранения его.
Некоторые простые идеи:
cd
вернуться к Вашему корневому каталогу. Использовать cd ~/<dir>
пойти каталог относительно Вашего корневого каталога.cd -
вернуться к последнему каталогу. Т.е. с этой командой можно переключиться назад и вперед между двумя каталогами.pushd <dir>
перейти к каталогу и помнить к предыдущему местоположению на стопке каталога. Затем используйте popd
возвратиться (в стопке каталога) к предыдущему местоположению.cd ../<dir>
, вместо полных путей.cd !$
перейти к каталогу, упомянутому в последнем аргументе предыдущей команды (зависит от Вашей оболочки). Пример: mkdir /tmp/dir
сопровождаемый cd !$
и Вы - текущий каталог, /tmp/dir
.zsh
имеет немного лучшее завершение - можно просто ввести немного символов каждого каталога и нажать вкладку для разворачивания всех их:
$ cd p/t/t/t/p/p/er<tab>
Также существуют некоторые утилиты, которые могут помнить, куда Вы часто идете и пытаетесь предположить или просто ведете себя как более умная версия cd
, f.e. cdargs
, wcd
, apparix
, kcd
... никогда не использовал их, я всегда просто использовал zsh
завершение.
Я обычно создаю сценарий оболочки, названный чем-то как 'mycd', которому я могу передать параметры. Что-то вроде этого:
# Shell script to CD into various locations.
if [ "$1" == "myhome" ] ; then cd ~;
elif [ "$1" == "mypref" ] ; then cd ~/Library/Preferences;
elif [ "$1" == "mylib" ] ; then cd ~/Library;
elif [ "$1" == "syslib" ] ; then cd /System/Library;
elif [ "$1" == "--help" ] ; then
echo "Usage: $0 location, which can be one of"
echo "myhome = My home dir."
echo "mypref = My Preferences dir."
echo "mylib = My Libraries dir."
echo "syslib = System library."
echo "--help = Show this message."
else echo "$0: $1 not known.";
fi
И затем в файле псевдонима, помещенном запись как:
alias mycd='. /path/to/mycd'
Затем я могу просто назвать его с чем-то как mycd mylib
и это возьмет меня прямо там.
Подобный списку упомянутых выше псевдонимов, но это собирает их всех в одном месте, и он дает текст справки, если мне нужно напомнить, что помещает, я сохранил.
Бездельничание с некоторыми из этих ответов сегодня. То, что интересно, является некоторой комбинацией globbing с использованием tab
на оболочке Bash. Например:
cd /p*/t*/*need*/py*
и вкладка хита и если это уникально, это расширяется, иначе это дает Вам выбор.
На Mac OS X (использующий/bin/bash) можно использовать все типичные терминальные команды CD и cdpath информацию.
Существует хороший прием все же. Можно перетащить папку от Средства поиска в терминал, и полный путь будет отображен. Это помогает одноразовым сложным длинам файла к быстро и визуально вводиться в терминал.