Finder でファイルを選んでからターミナルで操作したい時、パスをコピーするのが面倒。macOS には、簡単にファイルパスを取得する方法がいくつかある。
方法1: Option + 右クリック(一番簡単)
macOS に標準で備わっている機能。
手順
- Finder でファイルやフォルダを選択
- Option キーを押しながら右クリック(または二本指タップ)
- メニューに 「~のパス名をコピー」 が追加されてるのでクリック
- フルパスがクリップボードにコピーされる
コピーされるパスの例:
/Users/username/Documents/project/file.txt 方法2: ターミナルにドラッグ&ドロップ
直接ターミナルにパスを貼り付けたい場合に便利。
手順
- ターミナルを開く
- Finder からファイルやフォルダをターミナルのウィンドウにドラッグ&ドロップ
- パスが自動的に入力される(スペースが含まれる場合はエスケープされる)
例:
# ドラッグ&ドロップするとこうなる
cd /Users/username/Documents/project
# スペースがある場合はエスケープされる
cd /Users/username/My\ Documents/project 方法3: Cmd + Option + C(ショートカット)
ファイルを選択してショートカットでコピーできる。
手順
- Finder でファイルやフォルダを選択
- Cmd + Option + C を押す
- フルパスがクリップボードにコピーされる
キーボードだけで完結するので、マウスを使わずに操作したい時に便利。
方法4: Automator でカスタムサービスを作成
より高度なカスタマイズがしたい場合、Automator で独自のサービスを作成できる。
手順
- Automator を起動(Applications > Automator)
- クイックアクション を選択
- 「選択された Finder 項目を取得」アクションを追加
- 「AppleScript を実行」アクションを追加
- 以下のスクリプトを入力:
on run {input, parameters}
set thePath to POSIX path of input
set the clipboard to thePath
return input
end run - 「ファイル」→「保存」で名前を付けて保存(例: 「パスをコピー」)
- Finder でファイルを右クリック→「クイックアクション」→作成したサービス名で実行
方法5: ショートカット.app で独自ショートカットを作成
macOS Monterey 以降では、「ショートカット」アプリでも同様のことができる。
手順
- ショートカット アプリを開く
- 右上の + ボタンをクリック
- 「Finder で選択項目を取得」アクションを追加
- 「テキストをクリップボードにコピー」アクションを追加
- 上部の詳細ボタン(ℹ️)をクリックして、「Finder でクイックアクションとして使用」をオン
- 名前を付けて完了
相対パス vs 絶対パス
上記の方法でコピーされるのは絶対パス(フルパス)。相対パスが必要な場合は、以下のように手動で編集する必要がある。
# 絶対パス
/Users/username/Documents/project/file.txt
# 相対パス(現在のディレクトリが /Users/username の場合)
Documents/project/file.txt
# ホームディレクトリからのパス
~/Documents/project/file.txt 複数ファイルのパスを一度にコピー
複数のファイルを選択して Option + 右クリック → 「~のパス名をコピー」を実行すると、すべてのファイルのパスが改行区切りでコピーされる。
/Users/username/Documents/file1.txt
/Users/username/Documents/file2.txt
/Users/username/Documents/file3.txt こんな時に便利
- Finder で見つけたファイルをターミナルで操作したい
- スクリプトやコマンドにファイルパスを渡したい
- 深い階層のディレクトリに
cdしたい - 複数のファイルパスを一度に取得したい
- ドキュメントやメールにファイルパスを記載したい
おまけ: 現在のディレクトリを Finder で開く
逆に、ターミナルから現在のディレクトリを Finder で開きたい場合は、以下のコマンドを実行する:
open . . は現在のディレクトリを意味する。open コマンドは指定したファイルやディレクトリを Finder で開く。
注意
- コピーされるパスにスペースや特殊文字が含まれる場合、ターミナルではエスケープ(
\)が必要になることがある。 - シンボリックリンクの場合、リンク先のパスではなくリンク自体のパスがコピーされる。
- Automator やショートカットで作成したサービスは、初回実行時にアクセス許可を求められることがある。