Несмотря на то, что уже есть несколько хороших ответов, я решил упомянуть для полноты, что старые pushdи popdвстроенные в Bash встроенные функции позволяют очень быстро перемещаться между каталогами по глубоким путям в вашей файловой системе. В отличие от autojumpзакладок, упомянутых в burger.ga , стек каталогов, созданный с использованием, pushdявляется временным.
Как GNU ручных примечания , pushdи popdявляются Баш встроенных команд используются для создания временного стека каталогов , который является
список недавно посещенных каталогов. Встроенная команда pushd добавляет каталоги в стек при изменении текущего каталога, а встроенная команда popd удаляет указанные каталоги из стека и изменяет текущий каталог на удаленный каталог. Встроенная библиотека dirs отображает содержимое стека каталогов.
К этому нужно привыкнуть, но в этом блоге и на этом сайте, например , есть множество полезных руководств . Для команд нет отдельных страниц управления, поскольку они включены в справочную страницу Bash, но для быстрого ознакомления вы можете просмотреть страницу GNU Bash .
Ярчайший объяснение в этой очень полезной статье , и именно так , как я использую pushdи popd:
Во-первых, используйте dirsили dirs -lдля просмотра каталогов в стеке и dirs -cдля очистки стека.
В некотором смысле вы добавляете в закладки место, куда хотите вернуться, введя
pushd /home/mike/Pictures/Canon/2012_07_01
и затем вы можете добавить больше каталогов в стек, так что вы получите список каталогов, как показано ниже, который включает в себя 3 назначенные папки и вашу ~домашнюю папку:
dirs
~/Downloads/folder/interest ~/Music/artist/album ~ ~/Pictures/Canon/2012_07_01
Вам на самом деле не нужно использовать popdсразу, так как это удаляет каталоги из стека; Лучше всего использовать pushdвращение стека, чтобы вы могли продолжать переключаться между каталогами и упорядочивать их по своему усмотрению. Подробнее об этом вращении стека смотрите на странице руководства Bash .
Если у вас есть именно такое расположение стеков, как dirsпоказано в приведенном выше листинге, pushd +3вы переключаетесь в определенную папку Pictures и размещаете ее в верхней части стека (это +3, а не +4, поскольку вы не учитываете ваше значение ~в стеке каталогов):
pushd +3
~/Pictures/Canon/2012_07_01 ~/Downloads/folder/interest ~/Music/artist/album ~
Так что подсказка гласит:
~/Pictures/Canon/2012_07_01$
Вы можете продолжать делать это, не удаляя их из стека, хотя любые папки, cdк которым вы , кроме тех, которые добавлены в стек каталогов pushd, изменят ваш стек каталогов.
После того как стек каталогов упорядочен в нужном вам порядке, вы можете использовать его popdдля быстрого циклического перемещения по каталогам и возврата в домашнюю папку; например, из Picturesмы можем вернуться к Downloads:
popd
~/Downloads/folder/interest ~/Music/artist/album ~
и подсказка гласит
~/Downloads/folder/interest$
В общем, прелесть этого в том, что вы можете настроить стек каталогов и порядок элементов в нем, pushdа затем, скажем, у вас есть три файла для редактирования в каждом из этих каталогов, вы можете мгновенно вернуться к каждому popd, удаляя их. из стека каталогов. Тогда с вашим последним popdвы вернетесь к ~. Это становится особенно полезным, когда у вас есть особенно глубокие каталоги и вы можете использовать их для настройки стека каталогов, чтобы быстро перемещаться между ними.
Кроме того, этот вопрос содержит несколько советов, которые могут оказаться полезными при работе в командной строке: