コマンドの出力をにリダイレクトできますかcd
?たとえば、検索ディレクトリを使用してlocate
そのパスを取得します。これで出力をにリダイレクトcd
できますか?locate
cd
私はこれを試しました:
$ 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
$
不運。これは特に役に立たないかもしれませんが、気になります。
答え1
リダイレクトではなくコマンドの置換が必要です。
cd "$(locate Descargas | grep -F 'Descargas$')"
$(
との間のビットは)
コマンドとして実行され、出力(最後の改行を除く)はコマンド全体に置き換えられます。
「バックティック」(「``」)を使用してこれを行うこともできます。
cd "`locate Descargas | grep -F 'Descargas$'`"
ドル角かっこ構文は、入れ子になった場合に扱いやすいため、一般的に好まれます。
# contrived
cd "$(grep '^dir: ' "$(locate interesting-places | head -1)" | sed 's/^[^ ]*//')"