Je change de répertoire en donnant cd (dir_path)
. Quand je donne cela, il veut également afficher le contenu dans le répertoire. Dites comme si nous tapons ls
après être allé dans ce répertoire. Fondamentalement, les deux commandes doivent exécuter ensemble cd (dir_path)
et un ls
dans ce chemin uniquement en donnant la commande cd (dir_path)
. p>
Comment faire cela dans tcsh
?
4 Réponses :
Il existe un moyen d'exécuter des commandes l'une après l'autre en utilisant l'opérateur &&
cd `directory` && ls
Si vous utilisez uniquement un alias, vous ne pouvez pas passer un argument de ligne de commande à la commande cd
à l'intérieur de l'alias. Une fonction permet de passer la ligne de commande arg.
En effet. Ma faute.
Selon le commentaire de uzsolt , cette réponse ne s'applique pas à tcsh
. La question initiale ne mentionnait pas cette exigence. La question a été modifiée plus tard après que l'OP a mentionné tcsh
dans un commentaire.
Dans bash
ou zsh
, vous pouvez définir une fonction nommée cd
XXX
Lorsque vous exécuterez ensuite cd somedir
, vous appellerez votre fonction cd
au lieu de la commande. Si vous voulez appeler la commande normale cd
, utilisez
unalias cd
Ou vous pouvez supprimer la fonction plus tard en utilisant
command cd [somedir]
cette fonction cdls () doit être ajoutée dans le fichier tcshrc, non?
Désolé, je ne peux pas vous aider avec tcsh
. Vous ne l'avez pas mentionné dans votre question. Une fonction cdls
peut être définie pour chaque shell (y compris les non interactifs), une fonction ou un alias cd
qui remplace la commande cd
normale doit être défini pour un shell interactif uniquement.
@VicKy Essayez si la fonction (et l'alias) fonctionnent dans tcsh
. Si vous voulez savoir dans quel fichier de démarrage vous devez placer la définition de la fonction ou de l'alias, ajoutez ceci à votre question.
@Bodo tcsh
ne prend pas en charge les fonctions, donc votre solution ne peut pas s'adapter à tcsh
.
Je pense que la méthode la plus simple est d'utiliser cwdcmd
:
alias cwdcmd ls
Peut être mis dans ~ / .tcshrc
. p>
Voir man tcsh :
Alias spéciaux
....
cwdcmd
S'exécute après chaque changement de répertoire de travail.
alias cd 'cd \!* && ls && pwd'