Watch

Mac OS Xでターミナルからクリップボードに現在のパスをコピーする

Mac OS Xでターミナルからクリップボードに現在のパスをコピーする

ターミナルから現在のパスをMac OS Xのクリップボードにコピーします

Mac の GUI や Finder からフォルダー パスをコピーしたり、ドラッグ アンド ドロップ トリックでパスをターミナルにコピーしたりするのは簡単ですが、反対方向に進んでコマンド ラインから現在のパスを取得し、より広範な OS X クリップボードにアクセスできるようにするのは少し難しいです... まあ、少なくともこの便利な小さなヒントを知るまでは。


このトリックは機能的には非常に単純で、pwd コマンド (現在の作業ディレクトリの略) と pbcopy コマンド (OS X のクリップボードにコピーする機能へのコマンド ライン インターフェイス) を使用します。最も単純な動作は次のようにします。

pwd|pbcopy

これにより、現在の作業ディレクトリが OS X のクリップボードに即座にコピーされます。

すでにコマンド ラインに精通している場合はそのまま進めますが、コマンド ラインについてあまり詳しくない人のために、このコマンド シーケンスをもう少し理解しやすくするために確認してみましょう。

手順に沿って進めたい場合は、ターミナルアプリを起動してください。まず、コマンドライン内でパスをコピーする場所に移動してください。このチュートリアルでは、すべてのMacで共通で比較的深いシステムパスである「/System/Library/CoreServices/Resources/」を選択します。コマンドプロンプトで次のコマンドを入力します。

cd /System/Library/CoreServices/Resources/

Return キーを押すとそのフォルダーに移動します。前述の「pwd」コマンドを使用して確認してみましょう。

pwd

もう一度、リターンキーを押すと、次のような出力が表示されます。

$ pwd
/System/Library/CoreServices/Resources/

正しい場所にいることがわかったので、そのディレクトリ パスをクリップボードにコピーしましょう。ただし、マウス カーソルを使用して手動で選択して Command+C を押すのではなく、代わりに pbcopy を使用します。

pwd|pbcopy

仕組みはシンプルです。「pwd」コマンドが実行され、「パイプ」と呼ばれるものを使ってpbcopyの出力を次のコマンド(この場合は「pbcopy」)にリダイレクトします。前述の通り、pbcopyはMac OS Xクリップボードへのコマンドラインインターフェースなので、コマンド出力をパイプすることで、そのデータがMacのクリップボードに保存されます。よくわからない場合は、任意のテキストドキュメントを開くか、ターミナルプロンプトでCommand+Vを押してください。出力として「/System/Library/CoreServices/Resources/」が表示されます。素晴らしいと思いませんか?また、pbcopyのもう一方の端であるpbpasteを使って、保存されたクリップボードデータを表示することもできます。

これを頻繁に使用する予定がある場合は、.bash_profile に次のような行を追加することで、プロファイル内にエイリアスを作成できます。

alias copypath='pwd|pbcopy'

これを bash_profile に保存しておけば、「copypath」と入力するだけで同じ効果が得られます。

このトリックを使えば、現在のパスを簡単に取得でき、ターミナルからGUIへの移行も大幅に楽になります。Macユーザーは、GUIからターミナルへ、つまり逆の方法で操作することも可能です。ドラッグ&ドロップでFinderからコマンドプロンプトへ、アイテムの完全なパスやファイル名を自動的に入力するという便利なトリックです。