Come reindirizzare l'output su cd?


11

È possibile reindirizzare l'output di un comando su cd? Ad esempio, ho cercato una directory usando locatee ho ottenuto il percorso. Ora, invece di scrivere un cdpercorso, posso reindirizzare l' locateoutput su cd?

Ho provato questo:

$ 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
$ 

Senza fortuna. Questo probabilmente non è particolarmente utile, ma sono curioso.

Risposte:


16

Si desidera la sostituzione dei comandi, non il reindirizzamento:

cd "$(locate Descargas | grep -F 'Descargas$')"

I bit tra il $(e il )vengono eseguiti come comando e l'output (rimosso da qualsiasi nuova riga finale) viene sostituito nel comando generale.

Questo può essere fatto anche con 'back tick' (“` ”):

cd "`locate Descargas | grep -F 'Descargas$'`"

La sintassi del dollaro è generalmente preferita perché è più facile da gestire in situazioni nidificate:

# contrived
cd "$(grep '^dir: ' "$(locate interesting-places | head -1)" | sed 's/^[^ ]*//')"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.