概要
ターミナルコマンドの跡に、パイプ(|)と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について:
https://www.google.co.jp/amp/s/hack-le.com/pbcopy/amp/
Linuxでpbcopy, pbpast が使いたい時:
http://d.hatena.ne.jp/dai_yamashita/touch/20120323/1332520873
コメント