Finder でファイルを選んでからターミナルで操作したい時、パスをコピーするのが面倒。macOS には、簡単にファイルパスを取得する方法がいくつかある。

方法1: Option + 右クリック(一番簡単)

macOS に標準で備わっている機能。

手順

  1. Finder でファイルやフォルダを選択
  2. Option キーを押しながら右クリック(または二本指タップ)
  3. メニューに 「~のパス名をコピー」 が追加されてるのでクリック
  4. フルパスがクリップボードにコピーされる

コピーされるパスの例:

/Users/username/Documents/project/file.txt

方法2: ターミナルにドラッグ&ドロップ

直接ターミナルにパスを貼り付けたい場合に便利。

手順

  1. ターミナルを開く
  2. Finder からファイルやフォルダをターミナルのウィンドウにドラッグ&ドロップ
  3. パスが自動的に入力される(スペースが含まれる場合はエスケープされる)

例:

# ドラッグ&ドロップするとこうなる
cd /Users/username/Documents/project

# スペースがある場合はエスケープされる
cd /Users/username/My\ Documents/project

方法3: Cmd + Option + C(ショートカット)

ファイルを選択してショートカットでコピーできる。

手順

  1. Finder でファイルやフォルダを選択
  2. Cmd + Option + C を押す
  3. フルパスがクリップボードにコピーされる

キーボードだけで完結するので、マウスを使わずに操作したい時に便利。

方法4: Automator でカスタムサービスを作成

より高度なカスタマイズがしたい場合、Automator で独自のサービスを作成できる。

手順

  1. Automator を起動(Applications > Automator)
  2. クイックアクション を選択
  3. 「選択された Finder 項目を取得」アクションを追加
  4. 「AppleScript を実行」アクションを追加
  5. 以下のスクリプトを入力:
on run {input, parameters}
    set thePath to POSIX path of input
    set the clipboard to thePath
    return input
end run
  1. 「ファイル」→「保存」で名前を付けて保存(例: 「パスをコピー」)
  2. Finder でファイルを右クリック→「クイックアクション」→作成したサービス名で実行

方法5: ショートカット.app で独自ショートカットを作成

macOS Monterey 以降では、「ショートカット」アプリでも同様のことができる。

手順

  1. ショートカット アプリを開く
  2. 右上の + ボタンをクリック
  3. 「Finder で選択項目を取得」アクションを追加
  4. 「テキストをクリップボードにコピー」アクションを追加
  5. 上部の詳細ボタン(ℹ️)をクリックして、「Finder でクイックアクションとして使用」をオン
  6. 名前を付けて完了

相対パス 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 やショートカットで作成したサービスは、初回実行時にアクセス許可を求められることがある。