Coloque isso no seu ~/.bashrc
:
cdup() {
levels=${1-1}
while ((levels--)); do
cd ..
done
}
(O nome cdup
vem do comando FTP correspondente, apenas FYI.)
Eu estou constantemente mudando para o cd ../../../../ '. Existe um comando / alias que poderia me deixar ir 'cmd 4' e eu seria levado de volta 4 diretórios?
Eu fui ensinado a usar 'pushd' e 'popd' para tais circunstâncias.
Por exemplo, digite "pushd". e depois 'cd / home'. Agora digite 'popd' e você estará de volta ao ponto de partida.
'pushd' / 'popd' é uma pilha, você pode enviar tantos diretórios quantos quiser, mas é a última vez, primeiro quando você popd.
Claro, por que não:
up() { [ $# = 0 ] && cd .. && return [ $1 = 0 ] && return cd .. && up $(($1 - 1)) }
Rápido e sujo:
cmd () { dir=.; for i in $(seq 1 $1); do dir=$dir/..; done; pushd $dir; }
Formulado para alterar apenas o diretório uma vez.
Aqui está uma maneira alternativa:
function cdup
{
cd $(for ((i=0 ; i<$1 ;i++)); do printf "../" ; done)
}
Você pode querer usar pushd
e popd
para definir marcadores de localização e voltar facilmente a partir de qualquer diretório para o qual você alterou.
Você também pode definir uma variável com o nome de um diretório que você usa muito, então CD lá:
MYPROJ=~/projects/name/src
cd $MYPROJ
proj1='cd $MYPROJ'
Eu uso o autojump que me permite digitar:
j h
>> /home/cjulien
j et
>> /etc
pode aprender com seus hábitos e é muito leve (e viciante;))
Compile o caminho usando printf
then cd
:
cdup() {
local path
printf -v path '%*s' "${1:-1}"
cd "${path// /../}"
}
Use como:
cdup 4 # to go up four directories
cdup 1 # to explicitly go up one directory
cdup # to implicitly go up one
Dois pensamentos que podem ser úteis para você:
cd -
mude de volta para o último diretório em que você estava. Eu uso isso o tempo todo para ir do fundo para baixo na minha árvore de código de volta para a raiz dele ... embora isso só funcione se você o colocasse em uma mudança.
cdd old new
essa foi uma função de script que eu havia escrito no passado e que usei para me movimentar entre árvores semelhantes. Basicamente, levou dois argumentos e fez um regexp no seu caminho, ótimo para se movimentar entre os ramos e tal. Por exemplo, se você estava em ~ / bzr / web / trunk / path / to / feature e precisava chegar em ~ / bzr / web / feature-branch / caminho / to / feature, você faria cdd trunk feature-branch
. A implementação que tive foi em uma linguagem de shell arcaica no AIX, mas foi bastante trivial, portanto, deve ser fácil de implementar no shell de escolha, se você precisar dele. Para nós, foi muito útil porque a estrutura parecia com: ... / {product} / {version} / {release} / {src, bld, dbg, pkg, tst} / {component} / ... movendo-se nessa árvore ficou louco rapidamente.