Çıkışı cd'ye nasıl yönlendirebilirim?


11

Bir komutun çıktısını yeniden yönlendirmek mümkün müdür cd? Örneğin, kullanarak bir dizin aradım locateve yolunu aldım. Şimdi, bir cdyol yazmak yerine , locateçıktıyı yeniden yönlendirebilir miyim cd?

Bunu denedim:

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

Şanssız. Bu muhtemelen çok yararlı değil, ama merak ediyorum.

Yanıtlar:


16

Komut yerine koymak istiyorsunuz, yönlendirme değil:

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

Arasında bit $(ve )bir kumanda ve (herhangi bir nihai yeni satır sıyrılmıştır) çıkış genel komuta ikame olarak çalıştırılır.

Bu, 'geri keneler' (“` `”) ile de yapılabilir:

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

Dolar-paren sözdizimi genellikle tercih edilir, çünkü iç içe durumlarda uğraşmak daha kolaydır:

# contrived
cd "$(grep '^dir: ' "$(locate interesting-places | head -1)" | sed 's/^[^ ]*//')"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.