En bash, je peux aller dans mon répertoire personnel avec cd ~
et me référer à mon répertoire personnel avec n'importe quelle commande avec ~
.
Puis-je créer de nouveaux "alias de répertoire" personnalisés (?) Pour faire référence à d'autres répertoires? Exemple hypothétique:
make_alias "~~" /mnt/photon/work/foo_project/
cp ~/home.png ~~/set_8/home_4.png
Comment cela peut-il être fait, si oui? Si ce n'est pas le cas, est-ce par conception et pourquoi?
C'est bien d'avoir: où et comment ~
est réglé et lié à ce "~"?
n=/mnt/photon/work/foo_project
et ensuitecp foo ~n/bar
. (Remarque pour l'OP: également limité à zsh).@
ou_
), ce qui n'est pas possible dans bash, alors qu'il l'~~
est certainement (hacky, mais possible). En outre, il ne répond pas à la façon dont ce remappage est effectué.Réponses:
Le tilde n'est pas un alias, il fait partie de l'expansion du shell de bash (tout comme
*.txt
ou$((1 + 2))
).L'extension Bash tilde prend en charge les préfixes tilde suivants:
dirs
utilise la pile de répertoires. Vous pouvez utiliserpushd
pour y ajouter un répertoire.Pour répondre à votre question spécifique
~~
, oui, il est possible de lui mapper un répertoire. Il suffit de créer un utilisateur appelé~
et défini/mnt/photon/work/foo_project/
comme son répertoire personnel:Bien sûr, une approche beaucoup plus «saine» consiste simplement à définir une variable shell qui pointe vers votre répertoire dans votre
~/.bashrc
avec la commandequi est accessible via
$foo
, comme d'habitude.la source