Répertoire de signets pour bash
Est-il un répertoire de signets utilitaire pour bash pour permettre de se déplacer plus rapidement sur la ligne de commande?
Mise à JOUR
Merci les gars pour les commentaires cependant j'ai créé mon propre simple script shell (n'hésitez pas à la modifier et de l'élargir)
function cdb() {
USAGE="Usage: cdb [-c|-g|-d|-l] [bookmark]" ;
if [ ! -e ~/.cd_bookmarks ] ; then
mkdir ~/.cd_bookmarks
fi
case $1 in
# create bookmark
-c) shift
if [ ! -f ~/.cd_bookmarks/$1 ] ; then
echo "cd `pwd`" > ~/.cd_bookmarks/"$1" ;
else
echo "Try again! Looks like there is already a bookmark '$1'"
fi
;;
# goto bookmark
-g) shift
if [ -f ~/.cd_bookmarks/$1 ] ; then
source ~/.cd_bookmarks/"$1"
else
echo "Mmm...looks like your bookmark has spontaneously combusted. What I mean to say is that your bookmark does not exist." ;
fi
;;
# delete bookmark
-d) shift
if [ -f ~/.cd_bookmarks/$1 ] ; then
rm ~/.cd_bookmarks/"$1" ;
else
echo "Oops, forgot to specify the bookmark" ;
fi
;;
# list bookmarks
-l) shift
ls -l ~/.cd_bookmarks/ ;
;;
*) echo "$USAGE" ;
;;
esac
}
INSTALLER
1./créer un fichier ~/.cdb et copier le script ci-dessus dans.
2./dans votre ~/.bashrc ajouter le suivant
if [ -f ~/.cdb ]; then
source ~/.cdb
fi
3./redémarrez votre session bash
UTILISATION
1./pour créer un signet
$cd my_project
$cdb -c project1
2./pour aller directement vers un signet
$cdb -g project1
3./à la liste des signets
$cdb -l
4./pour supprimer un signet
$cdb -d project1
5./où sont tous mes signets stockés?
$cd ~/.cd_bookmarks
- Jetez un oeil à autojump: github.com/joelthelion/autojump/wiki
- Pourquoi la question et votre script bash spécifique? Vous devriez essayer d'éviter les scripts bash. Écrire des scripts shell à la place.
- j'ai utilisé ce livre pour faire ce que je voulais faire.
- Cette une seule est assez bon, trop. jeroenjanssens.com/2013/08/16/... Il a même de l'auto-complétion.
Vous devez vous connecter pour publier un commentaire.
Aussi, jetez un oeil à CHEMIN_CD
Un, séparés par deux points de la liste des chemins de recherche disponible à la commande cd, la fonction est similaire à la variable $PATH pour les fichiers binaires. L' $CHEMIN_CD variable peut être définie dans le local ~/.bashrc fichier.
et
C'est l'équivalent de ligne de commande de la touche retour (vous emmène au répertoire précédent, vous étiez dans l').
Merci pour le partage de votre solution, et je tiens à partager la mienne, que je trouve plus utile que tout ce que j'ai est venu à travers avant.
Le moteur est un excellent outil universel: en ligne de commande floue finder par Junegunn.
Surtout permet de “flou-trouver” les fichiers dans un certain nombre de façons, mais il permet aussi de nourrir texte arbitraire des données et le filtrage des données. Ainsi, les raccourcis idée est simple: tous nous avons besoin est de maintenir un fichier avec des chemins (qui sont en fait des raccourcis), et floue-filtre de ce fichier. Voici à quoi il ressemble: nous type
cdg
commande (à partir du cd "global", si vous le souhaitez), d'obtenir une liste de nos signets, choisissez le besoin en seulement quelques frappes au clavier, et appuyez sur Entrée. Répertoire de travail est modifié pour l'élément choisi:Il est extrêmement rapide et pratique: d'habitude, je viens de type 3-4 lettres de l'élément, et tous les autres sont déjà filtrés. En outre, bien sûr, nous pouvons nous déplacer dans la liste avec les touches fléchées ou avec vim-comme les raccourcis clavier
Ctrl+j
/Ctrl+k
.De l'Article avec plus de détails: Floue raccourcis de votre shell.
Il est possible de l'utiliser pour des applications avec interface graphique ainsi (via le terminal): - je l'utiliser pour mon interface graphique du gestionnaire de fichiers Double Commandant. J'ai l'intention d'écrire un article sur ce cas d'utilisation, trop.
fzf
commande! J'ai mis à jour votre réponse avec mon simplecdg
mise en œuvre. Espérons que cela aide d'autres personnes 🙂cdg
mise en œuvre peut être trouvé dans mon répondre. Heureuxcd
ing à tous 🙂En script bash/commande
vous pouvez utiliser
pushd
etpopd
pushd
Utilisation
popd est de supprimer la variable (inverse)
cd -
si la personne ne veut revenir en arrière et vient entre les répertoires.bookmarks.sh fournit un système de gestion de signet pour le Bash version 4.0+. Il peut également utiliser un Midnight commander hotlist.
Bashmarks est un étonnamment simple et intuitive de l'utilitaire.
En bref, après l'installation, l'utilisation est:
l
la fonction de quelque chose commelb
parce quel
est déjà un alias pour unls
incantation dans mon shell bash. Mais oui, un très cool, simple et intuitive de script!Inspiré par la question et les réponses ici, j'ai ajouté les lignes ci-dessous à mon
~/.bashrc
fichier.Avec ce que vous avez un
favdir
de commande (fonction) afin de gérer vos favoris et un d'auto-complétion fonction pour sélectionner un élément à partir de ces favoris.Dans les deux dernières lignes, un alias pour changer le répertoire courant (avec auto-complétion) est créé. Avec cet alias (
_cd
) vous êtes en mesure de modifier l'un de vos répertoires favoris. Peut vous wan pas de changer cet alias pour quelque chose qui correspond à vos besoins.Avec la fonction
favdirs
vous pouvez gérer vos favoris (voir utilisation).Oui, il est DirB: Répertoire des Signets pour Bash bien expliqué dans ce Linux Journal article
Un exemple tiré de l'article:
@getmizanur
J'ai utilisé votre cdb script. J'ai amélioré un peu en ajoutant de l'onglet signets achèvement. Voici ma version de votre cdb script.
Oui, celui que j'ai écrit, qui est appelé l'anc.
https://github.com/tobimensch/anc
De l'Anc, est synonyme de l'ancre, mais de l'anc ancres sont vraiment juste des signets.
Il est conçu pour la facilité d'utilisation et il y a plusieurs façons de naviguer, soit en donnant un modèle de texte, à l'aide de nombres, de manière interactive, en remontant en arrière, ou à l'aide de la touche [TAB] achèvement.
Je suis en train de le et ouvert aux suggestions sur la façon de faire mieux.
Me permettre de coller les exemples de l'anc page github ici:
En plus de @Dimitri Frank réponse - j'ai mis en œuvre la
cdb
de commande (aka cd signet) par le biais de simplesalias
(ajoutez cette ligne à votre~/.bash_profile
):De créer le fichier
~/.cd-bookmarks
et entrez votre parcours, un par ligne. Il prend en charge les lignes vides et les commentaires via#
:Malheureusement il ne prend pas en charge
~
expansion de saisir des chemins.Puis vous êtes capable de faire
Et à cause de
b
alias de même certaines des choses plus avancéesMalheureusement, si vous avez de la place dans votre signet chemins, vous devez citer le
`b`
appel. Ce qui la rend moins beau:À court terme, des raccourcis, j'ai la suite dans ma respectifs script d'initialisation (Désolé. Je ne peux pas trouver la source dès maintenant et ne vous embêtez pas à l'époque):
Utilisation:
Dans n'importe quel répertoire vous souhaitez ajouter un signet type
Il va créer un alias pour cd (retour) ici.
Pour revenir à un "signet" dir type
Il va exécuter l'stockées alias et cd-bas.
Attention: à Utiliser uniquement si vous comprenez que cela peut remplacer existant aliases et ce que cela signifie.