Est-il possible de redirect la sortie d'une command vers cd
? Par exemple, j'ai cherché un directory en utilisant locate
et j'ai obtenu le path d'access. Maintenant, au lieu d'écrire un path de cd
, puis-je redirect la sortie locate
vers cd
?
J'ai essayé ceci:
$ locate Descargas | grep Descargas$ /home/oliver/Descargas $ locate Descargas | grep Descargas$ | cd $ locate Descargas | grep Descargas$ > cd $ locate Descargas | grep Descargas$ < cd /home/oliver/Descargas $
Pas de chance. Ce n'est probablement pas particulièrement utile, mais je suis curieux.
Vous voulez replace la command, pas la redirection:
cd "$(locate Descargas | grep -F 'Descargas$')"
Les bits entre $(
et le )
sont exécutés comme une command et la sortie (dépouillée de toute nouvelle ligne) est substituée dans la command globale.
Cela peut également être fait avec des "tiques de return" ("` "):
cd "`locate Descargas | grep -F 'Descargas$'`"
La syntaxe dollar-paren est généralement préférée car elle est plus facile à gérer dans des situations nestedes:
# consortingved cd "$(grep '^dir: ' "$(locate interesting-places | head -1)" | sed 's/^[^ ]*//')"