コマンドの実行結果にcdしたいとき
たまにあります。
which hoge
で 取得したパスにcdする、的な。(出来たとしても hoge is not directoryとなるが)
例えば 今日の日付でディレクトリを作ってそのディレクトリにサクッと入りたいときとか
date +'%Y%m%d' |xargs mkdir
←20141209みたいなディレクトリが出来る
date +'%Y%m%d' |cd
← bashだと何も起こらず、zshだと(pwd now: ~)
なのでxargsで渡してみる
[vagrant@dev ~]$ date +'%Y%m%d' |xargs mkdir [vagrant@dev ~]$ date +'%Y%m%d' | xargs cd xargs: cd: No such file or directory
うまくいきません。 xargsは実行可能ファイルにのみ引数を受け渡すことが出来ますが、cdはbuilt-inのコマンドのため使えません。
`` でコマンドの実行結果を包んでcdするとうまいこと実行できます。 詳しくはサブプロセスが云々とかでよくわかってない。
[vagrant@dev ~]$ cd `date +'%Y%m%d'` [vagrant@dev 20141209]$