J'ai affaire à des projets Java qui aboutissent souvent à des dossiers profondément imbriqués (/path/to/project/com/java/lang/whatever, etc) et je veux parfois pouvoir sauter, disons, 4 niveaux de répertoire vers le haut. Taper cd ../../../ est pénible, et je ne veux pas faire de lien symbolique. Existe-t-il une option de cd qui permette de remonter plusieurs niveaux de répertoires (dans ma tête, ce serait quelque chose comme cd -u 4) ? Malheureusement, je n'arrive pas à trouver de page de manuel pour cd spécifiquement, à la place, j'obtiens juste la page inutile "builtins".
Réponses
Trop de publicités?Ou... essayez ceci : (yay Google)
Naviguez dans le répertoire en utilisant ..n :
Dans l'exemple ci-dessous, ..4 est utilisé pour monter de 4 niveaux de répertoire, ..3 pour monter de 3 niveaux de répertoire. pour monter de 3 niveaux de répertoires, ..2 pour monter de 2 niveaux de répertoires.
Ajoutez l'alias suivant au fichier .bash_profile et reconnectez-vous.
alias ..="cd "
alias ..2="cd ../ "
alias ..3="cd ../../ "
(etc.)
Véase Hack #2
Une solution simple et peu technique qui ne nécessite aucune installation. Ne fonctionne que dans les coquilles avec bash
-Cependant, il est possible d'éditer des commandes à la manière d'une machine à écrire.
- Tipo
cd ..
- Presse Up-arrow Return autant de fois que nécessaire. Très rapide si vous utilisez deux doigts.
Vous pourriez écrire une fonction (il doit s'agir d'une fonction, car vous souhaitez modifier l'état de votre Shell lui-même, à savoir le répertoire de travail ; une commande externe n'affecterait que son propre processus).
Voici une fonction qui remontera un certain nombre de niveaux passés en argument (par défaut 1) dans la fonction physique (donc, comme cd -P ..
, n fois) :
up() {
# default parameter to 1 if non provided
declare -i d=${@:-1}
# ensure given parameter is non-negative. Print error and return if it is
(( $d < 0 )) && (>&2 echo "up: Error: negative value provided") && return 1;
# remove last d directories from pwd, append "/" in case result is empty
cd "$(pwd | sed -E 's;(/[^/]*){0,'$d'}$;;')/";
}
Utilisez-le comme suit :
up 4
- Réponses précédentes
- Plus de réponses