быстрее подниматься вверх по дереву каталогов

В соответствии с этим вы можете настроить переменную окружения или просто добавить новую папку пути импорта. Но я рекомендую использовать virtualenv для проектов python, если вы захотите иметь некоторую гибкость.

2
задан 8 March 2012 в 01:14

13 ответов

Создание псевдонима будет работать как временное решение, однако если вы хотите что-то более постоянное, которое не ограничивает вас вашими пресетами, я предлагаю написать функцию для этого и включить ее в ваш .bashrc-файл.

источник

# Go up directory tree X number of directories
function up() {
        COUNTER="$@";
    # default $COUNTER to 1 if it isn't already set
if [[ -z $COUNTER ]]; then
    COUNTER=1
fi
# make sure $COUNTER is a number
if [ $COUNTER -eq $COUNTER 2> /dev/null ]; then
    nwd=`pwd` # Set new working directory (nwd) to current directory
    # Loop $nwd up directory tree one at a time
    until [[ $COUNTER -lt 1 ]]; do
        nwd=`dirname $nwd`
        let COUNTER-=1
    done
    cd $nwd # change directories to the new working directory
else
    # print usage and return error
    echo "usage: up [NUMBER]"
    return 1
fi
}
3
ответ дан 25 May 2018 в 13:40
  • 1
    Вам следует избегать использования всех имен переменных верхнего регистра, чтобы избежать случайного переопределения специальных переменных оболочки или переменных среды. Также неплохо сделать переменные локальными для функции. – geirha 8 March 2012 в 01:43

Создание псевдонима будет работать как временное решение, однако если вы хотите что-то более постоянное, которое не ограничивает вас вашими пресетами, я предлагаю написать функцию для этого и включить ее в ваш .bashrc-файл.

источник

# Go up directory tree X number of directories
function up() {
        COUNTER="$@";
    # default $COUNTER to 1 if it isn't already set
if [[ -z $COUNTER ]]; then
    COUNTER=1
fi
# make sure $COUNTER is a number
if [ $COUNTER -eq $COUNTER 2> /dev/null ]; then
    nwd=`pwd` # Set new working directory (nwd) to current directory
    # Loop $nwd up directory tree one at a time
    until [[ $COUNTER -lt 1 ]]; do
        nwd=`dirname $nwd`
        let COUNTER-=1
    done
    cd $nwd # change directories to the new working directory
else
    # print usage and return error
    echo "usage: up [NUMBER]"
    return 1
fi
}
3
ответ дан 10 August 2018 в 07:56

Создание псевдонима будет работать как временное решение, однако если вы хотите что-то более постоянное, которое не ограничивает вас вашими пресетами, я предлагаю написать функцию для этого и включить ее в ваш .bashrc-файл.

источник

# Go up directory tree X number of directories
function up() {
        COUNTER="$@";
    # default $COUNTER to 1 if it isn't already set
if [[ -z $COUNTER ]]; then
    COUNTER=1
fi
# make sure $COUNTER is a number
if [ $COUNTER -eq $COUNTER 2> /dev/null ]; then
    nwd=`pwd` # Set new working directory (nwd) to current directory
    # Loop $nwd up directory tree one at a time
    until [[ $COUNTER -lt 1 ]]; do
        nwd=`dirname $nwd`
        let COUNTER-=1
    done
    cd $nwd # change directories to the new working directory
else
    # print usage and return error
    echo "usage: up [NUMBER]"
    return 1
fi
}
3
ответ дан 15 August 2018 в 20:00

Если вы переключаетесь между двумя каталогами, вы можете использовать cd - для переключения между ними.

Если вы хотите пометить несколько каталогов, которые вы, вероятно, часто используете cd, используйте pushd и popd -> google для получения дополнительной информации.

Или, если вы знаете, что вы должны иметь cd для 7-го грандиозного родителя очень часто, вы можете создать псевдоним, например

alias cd7up = 'cd ../../../../../../../'
3
ответ дан 25 May 2018 в 13:40
  • 1
    я не люблю alias-решение, но вы научили меня pushd и popd, которые действительно полезны – Lai Yu-Hsuan 8 March 2012 в 01:40
  • 2
    разве это не полезно? почему это было занижено? – Mallik 10 March 2012 в 15:23

Вы можете создавать псевдонимы для выполнения работы.

alias cd..2 = "cd ../ .." alias cd..3 = "cd ../../ .." alias cd..4 = "cd ../../../ .." alias cd..5 = "cd ../../../../ .."

И затем вы можете просто набрать cd..5, чтобы подняться на 5 уровней. Чтобы эти псевдонимы были доступны в будущих входах, вы можете добавить это в файл .bash_profile в своем домашнем каталоге.

2
ответ дан 25 May 2018 в 13:40

Вы можете написать такую ​​функцию:

up() {
    local path i
    for (( i=0; i < $1; i++ )); do
        path+=../
    done
    cd "$path"
}

Поместите это в свой ~/.bashrc, затем вы можете запустить, например. up 7, чтобы увеличить 7 каталогов. Вы можете переопределить cd, чтобы разрешить cd up 7, но просто сделать новую команду короче и меньше хлопот.

2
ответ дан 25 May 2018 в 13:40

Будьте краткими.

alias c1='cd ../'
alias c2='c1; c1'
alias c3='c2; c1'
alias c4='c3; c1'
alias c5='c4; c1'
1
ответ дан 25 May 2018 в 13:40
function cdl() {

        local arguments;
        local level_string;
        local counter=1;
        # first argument is how many levels you wish to traverse
        local level=$1; 

        # grab any argument after the initial levels you wish to traverse
        for var in "$@"; do
                if [ $counter -gt 1 ]; then
                        arguments="$arguments/$var";
                fi

                counter+=1;
        done

        # build string based on how many levels you want to go up
        if [ $level -gt 1 ]; then
                counter=1;

                while [ $counter -le $level ]; do
                        level_string="../$level_string";
                        let counter+=1;
                done
        fi

        # execute command
        cd $level_string$arguments
}

# Example:
#-----------------
# /usr/local/src/test/directory/blah> cdl 3 i want to be here

или

# /usr/local/src/test/directory/blah> cdl 3 i/want/to/be/here 

result:

# /usr/local/src/i/want/to/be/here> 
#-----------------

Конечно, я также добавляю псевдонимы в файл .bashrc, используя указанную выше функцию

[ f4]
0
ответ дан 25 May 2018 в 13:40
function cdl() {

        local arguments;
        local level_string;
        local counter=1;
        # first argument is how many levels you wish to traverse
        local level=$1; 

        # grab any argument after the initial levels you wish to traverse
        for var in "$@"; do
                if [ $counter -gt 1 ]; then
                        arguments="$arguments/$var";
                fi

                counter+=1;
        done

        # build string based on how many levels you want to go up
        if [ $level -gt 1 ]; then
                counter=1;

                while [ $counter -le $level ]; do
                        level_string="../$level_string";
                        let counter+=1;
                done
        fi

        # execute command
        cd $level_string$arguments
}

# Example:
#-----------------
# /usr/local/src/test/directory/blah> cdl 3 i want to be here

или

# /usr/local/src/test/directory/blah> cdl 3 i/want/to/be/here 

result:

# /usr/local/src/i/want/to/be/here> 
#-----------------

Конечно, я также добавляю псевдонимы в файл .bashrc, используя указанную выше функцию

alias cd2='cdl 2'
alias cd3='cdl 3'
alias cd4='cdl 4'
alias cd5='cdl 5'
0
ответ дан 4 August 2018 в 17:23

Вы можете написать такую ​​функцию:

up() {
    local path i
    for (( i=0; i < $1; i++ )); do
        path+=../
    done
    cd "$path"
}

Поместите это в свой ~/.bashrc, затем вы можете запустить, например. up 7, чтобы увеличить 7 каталогов. Вы можете переопределить cd, чтобы разрешить cd up 7, но просто сделать новую команду короче и меньше хлопот.

2
ответ дан 4 August 2018 в 17:23

Вы можете создавать псевдонимы для выполнения работы.

alias cd..2 = "cd ../ .." alias cd..3 = "cd ../../ .. "alias cd..4 =" cd ../../../ .. "alias cd..5 =" cd ../../../../.."

И тогда вы можете просто набрать cd..5, чтобы перейти на 5 уровней. Чтобы сделать эти псевдонимы доступными для будущих логинов, вы можете добавить это в файл .bash_profile в своем домашнем каталоге.

2
ответ дан 4 August 2018 в 17:23

Будьте краткими.

alias c1='cd ../'
alias c2='c1; c1'
alias c3='c2; c1'
alias c4='c3; c1'
alias c5='c4; c1'
1
ответ дан 15 August 2018 в 20:00

Вы можете создавать псевдонимы для выполнения работы.

alias cd..2 = "cd ../ .." alias cd..3 = "cd ../../ .. "alias cd..4 =" cd ../../../ .. "alias cd..5 =" cd ../../../../.."

И тогда вы можете просто набрать cd..5, чтобы перейти на 5 уровней. Чтобы сделать эти псевдонимы доступными для будущих логинов, вы можете добавить это в файл .bash_profile в своем домашнем каталоге.

2
ответ дан 15 August 2018 в 20:00

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

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