これはmacOSに固有のものですが、理解するにはユニークすぎるようです。さまざまなリクエストをしてみてくださいコミュニティ。
端末からpwd
結果をコピーしてopen
結果を入力して貼り付けると、フォルダはFinderで開きますが、
pwd | open
印刷されたヘルプ文書open
。パイピングは機能しませんが、貼り付けは機能するのはなぜですか?
答え1
macOSのユーティリティはopen
標準入力から読み取らず、代わりにコマンドラインから引数を取得します。
現在の作業ディレクトリを開くには、次のように話す必要があります。
$ open "$( pwd )"
または
$ open "$PWD"
または単に
$ open .
以下のコメントからわかるように。
この-f
フラグを使用すると、open
標準入力から読み取ることができますが、デフォルトのテキストエディタで受け取ったもののみを開くことができます。
答え2
Macがないためテストできませんが、回避策は次のとおりです。
open "`pwd`"
stdin
すべてのプログラムがパイプライン操作に必要な入力を受け取るわけではありません。
答え3
pwd | xargs open
xargs
標準入力を最初の引数のパラメータにプッシュします。
答え4
パイプを使用して、-f
テキストエディタで前のコマンドの内容を開くことができます。これはテキストエディタでのみ機能します。他のアプリケーションでは、他の質問に提案を使用する必要があります。
たとえば、
ls | open -f
これにより、出力を含むデフォルトのテキストエディタが開きますls
。
以下を使用して使用するテキストエディタを指定することもできます-a
。
ls | open -a 'Atom' -f
これでAtomが開き、ls
コンテンツが出力されます。