Bagaimana cara mengarahkan output ke cd?


11

Apakah mungkin untuk mengarahkan output perintah cd? Sebagai contoh, saya mencari direktori menggunakan locatedan mendapatkan path ke sana. Sekarang, alih-alih menulis cdlintasan, dapatkah saya mengarahkan ulang locatehasilnya cd?

Saya mencoba ini:

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

Tidak berhasil Ini mungkin tidak terlalu berguna, tapi saya penasaran.

Jawaban:


16

Anda ingin penggantian perintah, bukan pengalihan:

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

Bit antara $(dan )dijalankan sebagai perintah dan output (dilucuti dari setiap baris baru) diganti dengan perintah keseluruhan.

Ini juga dapat dilakukan dengan 'kutu belakang' ("` "):

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

Sintaks dolar-paren umumnya lebih disukai karena lebih mudah untuk dihadapi dalam situasi bersarang:

# contrived
cd "$(grep '^dir: ' "$(locate interesting-places | head -1)" | sed 's/^[^ ]*//')"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.