【bash】 マウスを使わずに、ターミナルの出力をそのままコピー

2019 8/06
【bash】 マウスを使わずに、ターミナルの出力をそのままコピー
目次

概要

ターミナルコマンドの跡に、パイプ(|)とpbcopyを使うと、そのターミナルコマンドの出力がクリップボードにコピーされる。

例:pwd | pbcopy


背景

私は仕事や趣味でよくMac、Unixのターミナルで作業をするが、よく現在のディレクトリパス(カレントディレクトリパス)をコピーしたくなる。

例えば、2つのターミナルを使っているときに、片方のターミナルのカレントディレクトリパスをもう片方と同じにしたいとか、ファイルをもう片方のカレントディレクトリにコピーしたいだとか。

昔は、pwdを入力して、マウスでコピーしていたが、面倒。


課題

コマンド一発でカレントディレクトリパスをコピーできないか。

つまり、ターミナルの出力であるpwdの結果をそのままクリップボードに格納できないか。


解決法

ターミナルコマンドを繋げる「パイプ(|)」というコマンドと、クリップボードへの格納を意味する「pbcopy」を使う。

ターミナルコマンド(例えばpwd)の後にこの二つを繋げると、pwdの結果がコピーされる。

pwd | pbcopy 

この後に好きなところで、ペーストすれば、カレントディレクトリパスがペーストできる。このコマンドが長くて、打つのが面倒と思う人は、~/.bashrcに次のように一行追加すれば、3文字「pwb」で上記のコマンドと同じことができる。

alias pwb=“pwd | pbcopy”

(注1)~/.bashrcは大事なファイルなので、間違えて他の部分を変えないように。

(注2)~/.bashrcを編集した後に、編集部分を有効にするには各ターミナルで一回このファイルを次のコマンドで、読み込まないといけない。

source ~/.bashrc


応用

この「 | pbcopy 」はpwdの他にも色々と使える。

例えば

cat testdayo.txt | pbcopy 

で、testdayo.txtの中身全部をコピー。

これならいちいちファイルを開いて、全部選択してっていう作業が要らない。

ls testdayo1234567890.txt | pbcopy

長いファイル名をコピーしたいが、どうしてもマウスを使いたくない時に。


追加情報

Linuxの場合にはpbcopyコマンドがないので、自分で作らないといけない。

コピーした情報をペーストするpbpastコマンドがある。


参考

pbcopy, pbpasteについて:

或る阿呆の記
Macのターミナルでコピペ(pbcopy,pbpaste)
Macのターミナルでコピペ(pbcopy,pbpaste)Macのターミナルでコピペ作業する備忘録。テキストファイルの中身などを丸ごとコピペしたい時などによく使う、pbcopyおよびpbpasteコマンド。特にテキストファイルが長大だ...

Linuxでpbcopy, pbpast が使いたい時:

dai-yamashitaの日記
Linuxでpbcopyみたいなの。 - dai-yamashitaの日記
Linuxでpbcopyみたいなの。 - dai-yamashitaの日記Mac使って登壇してるヒトがたまにコマンドラインで調べ物して、その結果をコピペするときに、パイプで「pbcopy」って してるとなんか、カッコイイですよねw Linuxでもあん...

関連記事

応援よろしくお願いします☆

この記事を書いた人

天文の博士号をもつ理系パパ。
3歳の娘を子育て中。
最近はダイエットに挑戦中!

コメント

コメントする

目次
閉じる