Ярлык для переключения на данный каталог

В терминале Ubuntu я трачу много времени на переключение в определенный каталог при каждом запуске компьютера. Есть ли способ облегчить этот процесс? Могу ли я использовать какую-нибудь горячую клавишу или быструю смену каталога (например, быстрый набор на телефоне)?

 eg:
    cd 1:Changes to saved directory one
11
задан 7 December 2012 в 14:22

12 ответов

Существует две опции:

  1. Если Вы хотите быть в определенном каталоге everyt время, Вы открываете терминал удара, редактируете Ваш ~/.bashrc файл и просто добавляет строку cd Directory, например, cd ~/Desktop.

  2. Если Вы хотите иметь несколько ярлыков, можно всегда использовать глобальные переменные, которые можно начаться Ваш ~/.bashrc файл следующим образом export a=/tmp и затем Вы смогли бы сделать cd $a который принес бы Вам к /tmp.

Помните это после редактирования Вашего .bashrc файл необходимо перезапустить терминал или открыть новый.

12
ответ дан 7 December 2012 в 14:22

Псевдонимы Bash полезны для создания ярлыков для часто запускаемых команд.

  • В ~/.bashrc добавьте строку, подобную следующей, чтобы создать псевдоним:

    alias jump1='cd /long/path/name/that/is/frequently/used'
    
  • Закройте и снова откройте терминал или запустите source ~/.bashrc.

  • Теперь вы можете просто запустить jump1, чтобы выполнить эту длинную команду cd.

См. Также:

0
ответ дан 7 December 2012 в 14:22

Также взгляните на autojump, это создает базу данных с ранее посещаемыми каталогами, и затем можно перейти к нему. Так, например, Вы имеете

/home/user/this/long/and/annoyingly/deep/directory/workstuff

затем, если Вы посетили его, после того как можно перейти к нему

j workstuff

или даже

j stuff

потому что это также работает с частичными соответствиями. Если больше чем один каталог соответствует Вам переход к тому, который больше всего посещают, если это не то, Вы хотели, то повторите команду для движения во второе.

Однако это поправляется! Если у Вас также есть каталог

/home/user/stuff

и Вы делаете

j stuff 

и затем TabTabTab Вы добираетесь (в порядке наиболее посещаемых)

$ j stuff__
stuff__1__/home/user/this/long/and/annoyingly/deep/directory/workstuff
stuff__2__/home/user/stuff

и затем можно просто нажать количество каталога, который Вы хотите!

Устанавливать Вас может просто использовать sudo apt-get install autojump и затем необходимо добавить

source /usr/share/autojump/autojump.bash

к Вашему ~/.bashrc.

Больше информации здесь: https://github.com/wting/autojump (также инструкция относительно того, как установить это от src, который получает Вас новая версия),

18
ответ дан 7 December 2012 в 14:22

anc был разработан именно для этого варианта использования.

https://github.com/tobimensch/anc

Вот выдержка из README.md:

# make the current directory the default anchor:
$ anc s

# go to /etc, then /, then /usr/local and then back to the default anchor:
$ cd /etc; cd ..; cd usr/local; anc

# go back to /usr/local :
$ anc b

# add another anchor:
$ anc a $HOME/test

# view the list of anchors (the default one has the asterisk):
$ anc l
(0) /path/to/first/anchor *
(1) /home/usr/test

# jump to the anchor we just added:
# by using its anchor number
$ anc 1
# or by jumping to the last anchor in the list
$ anc -1

# add multiple anchors:
$ anc a $HOME/projects/first $HOME/projects/second $HOME/documents/first

# use text matching to jump to $HOME/projects/first
$ anc pro fir

# use text matching to jump to $HOME/documents/first
$ anc doc fir

# add anchor and jump to it using an absolute path
$ anc /etc
# is the same as
$ anc a /etc; anc -1

# add anchor and jump to it using a relative path
$ anc ./X11 #note that "./" is required for relative paths
# is the same as
$ anc a X11; anc -1

# using wildcards you can add many anchors at once
$ anc a $HOME/projects/*

# use shell completion to see a list of matching anchors
# and select the one you want to jump to directly
$ anc pro[TAB]

Полное раскрытие: я Автор anc.

0
ответ дан 7 December 2012 в 14:22

Даже при том, что существует какой-то способ командной строки, чтобы сделать это быстрее, я лично рекомендовал бы использовать расширение Nautilus под названием nautilus-open-terminal.

Сначала установите пакет nautilus-open-terminal и добавьте закладки в свои любимые папки с помощью Nautilus. На Nautilus 3.6. * Вам нужно будет перейти в меню передач и выбрать Добавить в закладки это местоположение .

enter image description here

Затем используйте закладки Nautilus для быстрого перехода в любимые каталоги, просто щелкните правой кнопкой мыши пустое место и выберите Открыть в терминале .

enter image description here

Теперь вы можете иметь быстрый доступ к любимым каталогам как из командной строки, так и из файлового менеджера.

0
ответ дан 7 December 2012 в 14:22

Даже при том, что уже существуют некоторые хорошие ответы, я думал, что упомяну для полноты старое pushd и popd Bash builtins с позволяет Вам перемещаться очень быстро между каталогами в глубоких путях в Вашей файловой системе. В отличие от autojump закладки упоминаются burger.ga, стопка каталога, созданная при помощи pushd является только временным.

Поскольку руководство GNU отмечает, pushd и popd Bash builtins, раньше создавал временную стопку каталога, которая является a

список недавно посещаемых каталогов. pushd встроенное добавляет каталоги к стеку, поскольку он изменяет текущий каталог, и popd встроенное удаляет указанные каталоги из стека и изменяет текущий каталог на удаленный каталог. Директора встроенные дисплеи содержание стопки каталога.

Требуется немного привыкающее к, но существует много полезных учебных руководств там в этом блоге и этом этом сайте, например. Нет никаких отдельных страниц справочника для команд, поскольку они включены в страницу справочника 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 Вы возвратитесь к ~. Становится особенно полезно, когда Вы имеете особенно глубокие каталоги и можете использовать его для установки стопки каталога для быстрого перемещения между ними.

Кроме того, этот вопрос содержит некоторые подсказки, которые Вы могли бы найти полезным при работе над командной строкой:

4
ответ дан 7 December 2012 в 14:22

Я создал для этого набор функций bash и добавил его в свой скрипт .bash_profile

Script

goto(){
    cd $(getFolders $1)
}

gf(){
    getFolders $1
}

getFolders (){

    local folderList=(
     'alias'
     'Description of alias'
     '/path/to/alias/folder'
     'alias2'
     'Description of alias2'
     '/path/to/alias2/folder'
    )
    local moved="0"
    local count=0

    # Returns the path to the project
    while [ "${folderList[count]}" != "" ]
    do
        if [ "$1" == "${folderList[count]}" ]; then
            echo ${folderList[$(( $count + 2 ))]}
            moved="1"
        fi
        count=$(( $count + 3 ))
    done

    # Returns all project names
    if [ "$moved" != "1" ]; then
        count=0
        while [ "${folderList[count]}" != "" ]
        do
            echoc 6 ${folderList[count]}
            echo - ${folderList[count+1]}
            count=$(( $count + 3 ))
        done
    fi
}

Использование

getFolders

Использование getFolders у вас есть список сокращений, описание и местоположение для каждой папки. Когда вы используете getFolders с сокращением, он выведет местоположение папки. Вы можете получить список доступных папок и их описания, просто вызвав getFolders без параметра

Пример получения пути к папке

getFolders alias

output

/path/to/alias/folder

Example получения доступных папок.

getFolders

выводит

alias
- Description of alias
alias2
- Description of alias2

gf

gf - это сокращение для getFolders

gf alias2

выводит

/path/to/alias2/folder

goto [ 1113]

goto - это простой способ перейти к выбранной папке.

goto alias

output

cd был запущен в / path / to / alias / folder

/ path / to / alias / folder>

Почему есть несколько функций

В основе Unix и Linux лежат простые многократно используемые функции, которые можно объединить в цепочку. Я предпочитаю этот метод, поскольку он не только перемещает вас в выбранное место, но и является функцией, которая по псевдониму возвращает путь. Вы можете использовать эту функцию, чтобы сделать что-нибудь из этой точки, например, cd, на этот путь.

0
ответ дан 7 December 2012 в 14:22

Вы можете разместить псевдоним в своем файле .bashrc (или в файле конфигурации вашей любимой оболочки - они обычно находятся в вашем домашнем каталоге):

alias cd1="cd directory/directory/my_destination/"

Полезная информация о том, как использовать псевдонимы в bash. здесь здесь .

0
ответ дан 7 December 2012 в 14:22

Попробуйте установить переменную окружения CDPATH в вашем .bashrc или .bash_profile. CDPATH принимает ту же форму, разделенную двоеточиями, что и другие PATH подобные переменные, и позволяет cd использовать ярлыки для поиска ваших каталогов. Например:

$ mkdir -p /tmp/foo/bar/baz
$ CDPATH='/tmp/foo/bar'
$ cd baz
/tmp/foo/bar/baz
0
ответ дан 7 December 2012 в 14:22

Вы можете установить свой собственный ярлык для определенного каталога. Например, вы хотите перейти во вложенный каталог, обычно вы делаете

cd / home / dir-1 / dir-2 / dir3 / dir4 / dir5 / dir6 / dir-target

вы обычно используете команду cd, а затем вводите все имена каталогов или можете пропустить ввод (используя кнопку TAB), но это все равно занимает несколько минут.

Итак, , чтобы сэкономить ваше время , вы можете сделать его псевдоним в терминале. Одноразовая задача - создать псевдоним.

псевдоним dir-target = '/ home / dir-1 / dir-2 / dir3 / dir4 / dir5 / dir6 / dir-target'

Теперь вам нужно просто использовать псевдоним ( dir-target ), чтобы перейти в целевой каталог.

0
ответ дан 7 December 2012 в 14:22

Самый быстрый способ, который я нашел, - это xd, программа «Электронные каталоги», написанная голландцем Фрэнком Б. Броккеном.

Он работает путем поиска всех путей в вашей файловой системе, которые могут быть преобразованы в введенную вами аббревиатуру, например. ulb может означать /usr/local/bin, если такая папка существует в вашей системе:

% cx ulb
Multiple Solutions:
 1: /usr/lib/binfmt.d/
 2: /usr/local/bin/

При нажатии 2 вы находитесь в /usr/local/bin.

Это действительно старое программное обеспечение, которое больше не доступно в исходном местоположении, нет связи с автором, поэтому, чтобы предотвратить его потерю, я поместил его в репозиторий Github:

https://github.com / mrkafk / exchange_directories

0
ответ дан 7 December 2012 в 14:22

Я использую DirB (Закладки каталога) для этого. Очень хорошо! http://www.linuxjournal.com/article/10585

Я изменил мой, чтобы удовлетворить мой вкус и быть более простым в использовании и яснее.

0
ответ дан 7 December 2012 в 14:22

Другие вопросы по тегам:

Похожие вопросы: