Ouais je le fais, je viens de l'écrire à la hâte;) Le modifier maintenant.
Wiil this do?:alias cmd5 = "cd ../../../../../"
ypercubeᵀᴹ
Eh bien, je suppose que je pourrais les écrire pour 1 à 10 environ, mais ce serait bien d'avoir une façon intelligente de le faire. Cela ne me convient pas vraiment. Le fera si aucune autre solution n'apparaît, cependant.
Réponses:
16
Mettez ceci dans votre ~/.bashrc:
cdup(){
levels=${1-1}while((levels--));do
cd ..done}
(Le nom cdupvient de la commande FTP correspondante, juste FYI.)
Merci pour la réponse, je suis allé avec la réponse de jleedev car elle était plus courte d'une ligne et je ne pouvais pas décider qui choisir! Merci quand même!
@ Muu: Les deux réponses fonctionneront, mais la mienne fonctionnera pour de très nombreux niveaux, et @ jleedev ne fonctionnera que pour une petite poignée (quelle que soit la limite de pile). ;-) (Je suis sûr que vous n'atteindrez jamais la limite de toute façon, mais la mienne est plus générale, c'est ce que j'essaie de comprendre. :-))
Chris Jester-Young
Bon point, je vous ai alors attribué la réponse. Désolé jleedev - bien que je vais probablement continuer à utiliser votre solution car j'oublierai de la changer :)
11
On m'a appris à utiliser «pushd» et «popd» dans de telles circonstances.
Par exemple, tapez «pushd». puis 'cd / home'. Tapez maintenant «popd» et vous serez de retour à l'endroit où vous avez commencé.
'pushd' / 'popd' est une pile, vous pouvez y pousser autant de répertoires que vous le souhaitez, mais c'est le dernier, tout d'abord lorsque vous popdez.
Vous voudrez peut-être étudier l'utilisation pushdet la popddéfinition de marqueurs d'emplacement et y revenir facilement à partir du répertoire dans lequel vous avez changé.
Vous pouvez également définir une variable avec le nom d'un répertoire que vous utilisez beaucoup, puis y insérer un CD:
MYPROJ=~/projects/name/src
cd $MYPROJ
proj1='cd $MYPROJ'
cd -
revenez au dernier répertoire dans lequel vous vous trouviez. Je l'utilise tout le temps pour revenir du plus profond de mon arbre de code à la racine de celui-ci ... bien que cela ne fonctionne que si vous y êtes entré en un seul changement.
cdd old new
c'était une fonction de script que j'avais écrite dans le passé et que j'utilisais pour me déplacer entre des arbres similaires. Fondamentalement, il a fallu deux arguments et a fait une expression rationnelle sur votre chemin, idéal pour se déplacer entre les branches et autres. Par exemple, si vous étiez dans ~ / bzr / web / trunk / path / to / feature et que vous deviez accéder à ~ / bzr / web / feature-branch / path / to / feature, vous le feriez cdd trunk feature-branch. L'implémentation que j'avais était dans un langage shell archaïque sur AIX, mais c'était assez trivial, donc devrait être facile à implémenter dans le shell de choix si vous en avez besoin. Pour nous, c'était très utile car la structure ressemblait à: ... / {produit} / {version} / {release} / {src, bld, dbg, pkg, tst} / {component} / ... donc se déplacer dans cet arbre est devenu fou assez rapidement.
ls
? Tu veux dire sûrementcd
?alias cmd5 = "cd ../../../../../"
Réponses:
Mettez ceci dans votre
~/.bashrc
:(Le nom
cdup
vient de la commande FTP correspondante, juste FYI.)la source
On m'a appris à utiliser «pushd» et «popd» dans de telles circonstances.
Par exemple, tapez «pushd». puis 'cd / home'. Tapez maintenant «popd» et vous serez de retour à l'endroit où vous avez commencé.
'pushd' / 'popd' est une pile, vous pouvez y pousser autant de répertoires que vous le souhaitez, mais c'est le dernier, tout d'abord lorsque vous popdez.
la source
Bien sûr, pourquoi pas:
la source
up 500
. :-)Rapide et sale:
Formulé pour ne changer de répertoire qu'une seule fois.
la source
Voici une manière alternative:
la source
Vous voudrez peut-être étudier l'utilisation
pushd
et lapopd
définition de marqueurs d'emplacement et y revenir facilement à partir du répertoire dans lequel vous avez changé.Vous pouvez également définir une variable avec le nom d'un répertoire que vous utilisez beaucoup, puis y insérer un CD:
la source
J'utilise autojump qui me permet de taper:
il peut apprendre de vos habitudes et est très léger (et addictif;))
la source
Construisez le chemin en utilisant
printf
ensuitecd
celui-ci:Utilisé comme:
la source
Deux réflexions qui pourraient vous être utiles:
cd -
revenez au dernier répertoire dans lequel vous vous trouviez. Je l'utilise tout le temps pour revenir du plus profond de mon arbre de code à la racine de celui-ci ... bien que cela ne fonctionne que si vous y êtes entré en un seul changement.
cdd old new
c'était une fonction de script que j'avais écrite dans le passé et que j'utilisais pour me déplacer entre des arbres similaires. Fondamentalement, il a fallu deux arguments et a fait une expression rationnelle sur votre chemin, idéal pour se déplacer entre les branches et autres. Par exemple, si vous étiez dans ~ / bzr / web / trunk / path / to / feature et que vous deviez accéder à ~ / bzr / web / feature-branch / path / to / feature, vous le feriez
cdd trunk feature-branch
. L'implémentation que j'avais était dans un langage shell archaïque sur AIX, mais c'était assez trivial, donc devrait être facile à implémenter dans le shell de choix si vous en avez besoin. Pour nous, c'était très utile car la structure ressemblait à: ... / {produit} / {version} / {release} / {src, bld, dbg, pkg, tst} / {component} / ... donc se déplacer dans cet arbre est devenu fou assez rapidement.la source