Копирование пути к текущему каталогу в буфер обмена

Как быстро скопировать путь к каталогу, открытому в Finder?

Скопировать этот путь очень легко в файловых менеджерах Linux и Windows — вам просто нужно скопировать его из адресной строки. Я не вижу соответствующей опции в Finder.

@AdamEberbach Я не согласен, вопрос, который вы связали, касается запуска экземпляра терминала по текущему пути Finder, речь идет о простом получении пути
Можете ли вы объяснить, что вы подразумеваете под копированием пути? Вы хотите, чтобы это было в буфер обмена в развернутом виде /Volumes/whatever/path/to/frontmost/window/viewили что-то еще? По сути, какой следующий шаг вы собираетесь выполнить с путем, когда он у вас есть?
@bmike: Да, ваш пример правильный. Следующим шагом может быть что угодно, что потребует от меня повторного доступа к этому пути к папке, либо немедленно, либо в будущем. Я могу сохранить этот путь в документе для дальнейшего использования или запустить некоторые команды в терминале, которые используют эту папку и т. д. В Windows и Linux я часто использую его для навигации в новом окне файлового менеджера, вставляя путь, но Я сомневаюсь, что это будет работать в OS X.
В вопросе говорится: «Мне нужен способ командной строки для определения рабочего каталога «текущего» окна Finder». - вы не просите получить путь к текущему окну Finder в терминале, Бегемот?
@ Адам: Не совсем так. Я ищу быстрый метод - похожий на те, к которым я привык в Windows и Linux (т.е. либо нажатие пары клавиш, либо нажатие и нажатие клавиши или двух).
Спасибо за отличные ответы. Я опробую их в ближайшие дни и приму тот, который лучше всего подходит для меня, или тот, который выберет сообщество. Продолжайте получать ответы!
@TimothyMueller-Harder: Хотя этот вопрос похож, есть разница между получением пути к файлу или папке в Finder и получением пути к активному окну, особенно если что-то уже выбрано в этом окне.
Что вы собираетесь делать с путем в буфере обмена после этого?
@patrix Это действительно наше дело?
В зависимости от того, чего он пытается достичь, могут быть лучшие решения, чем «Вырезать и вставить». Например, если ему нужен путь в терминале, он может просто перетащить файл/папку в окно терминала (без вырезания и вставки).
@BlankMan Вот ответ на ваш второй вопрос apple.stackexchange.com/questions/40194/…
Не могли бы вы отметить ответ apple.stackexchange.com/a/223155/5112 @shahid610169 как принятый ответ? ТИА

Ответы (17)

Option+ Command+C

Скопирует путь к выбранной папке или файлу в буфер обмена. Пробовал на Эль Капитане.

Спасибо, именно такой ответ я и хотел услышать.
для меня это вызывает меню «фрагменты» .. не уверен, что это какая-то утилита, которую я добавил, или часть ОС :(
Также у меня работает над macOS Montery

Рядом с названием папки в Finder есть значок, изображающий эту папку. Этот значок можно перетащить в любое место, где вам нужно принять путь — перетаскивание в Терминал или TextEdit в текстовом режиме приведет к удалению пути в виде текста в окне или документе. Однако это работает не со всеми местами назначения — например, при копировании в документ TextEdit с форматированным текстом копируется ссылка на папку, а не путь.

Есть некоторые сторонние приложения , некоторые бесплатные, некоторые платные, которые добавляют эту функциональность. Вы также можете создать службу с Automator ( или AppleScript ), чтобы сделать это, но простой и бесплатный метод, который мне нравится, особенно если вы все равно хотите использовать терминал, — это вызвать DTerm в окне Finder и запустить:

pwd | pbcopy

Это скопирует текущий путь в буфер обмена Mac OS X.

О, отличное использование DTerm. Я никогда не тратил достаточно времени, чтобы узнать его истинную силу, но больше людей, которых я знаю, клянутся в нем, чем в нем.
@bmike Да, я мало им пользуюсь, но это была моя первая мысль, когда я прочитал этот вопрос (после того, как обнаружил, что Finder действительно не имеет этой встроенной функции по умолчанию). Его преимущество в том, что DTerm — это инструмент общего назначения, а не то, что нужно устанавливать или настраивать для этой конкретной цели.
Это именно то, что я использую DTerm большую часть времени!
Также хорошим тоном является удаление самонадеянной новой строки из stdout pwd с расширением pwd | tr -d '\n' | pbcopy.
Вы можете использовать псевдоним для файла инициализации оболочки (например ~/.zshrc, ), чтобы pwdcскопировать текущий каталог терминала в буфер обмена, например:alias pwdc='pwd | pbcopy'

Вы можете использовать Automator, чтобы сделать это с помощью одного сочетания клавиш, которое вы можете использовать из любого приложения, и без установки стороннего программного обеспечения.

Эта служба Automator будет копировать путь к переднему окну Finder, а не путь к выбранному файлу или папке, поэтому она не повлияет на то, какие окна открыты или какие элементы выбраны. Скопированный путь — это просто текст, поэтому его можно вставить в любое место, где можно вставить текст.

  1. Откройте Automator и создайте новую службу.
  2. Измените «Сервис получает выбранное» на no input(или «файлы или папки», чтобы он отображался при щелчке правой кнопкой мыши) и оставьте его установленным any application(если только вы не хотите, чтобы он работал только из определенного приложения, например Finder).
  3. Добавьте в рабочий процесс действие «Запустить AppleScript».
  4. Заменить (* Your script goes here *)на:

    try
        tell application "Finder" to set the clipboard to POSIX path of (target of window 1 as alias)
    on error
        beep
    end try
    
  5. Сохраните службу Automator под любым именем в меню «Службы».

Эта служба Automator теперь будет в вашем меню служб.

Примечание. Это не экранирует пробелы, поэтому, если в вашем пути есть пробелы, вам может потребоваться заключить его в кавычки. Например, в Терминале путь должен быть заключен в кавычки, а в команде Finder «Перейти к папке» — нет. Если вы хотите, чтобы он копировался, как указано, вы можете изменить POSIX pathего на quoted form of POSIX path.

Копировать службу пути окна Finder

Вы можете добавить сочетание клавиш для службы, выбрав «Системные настройки» > «Клавиатура» > «Сочетания клавиш», затем нажмите «Службы» на левой панели, а затем прокрутите вниз до раздела «Общие» на правой панели, пока не найдете свою службу.

Сочетание клавиш «Копировать путь к окну Finder»

Спасибо, это работает для меня, но еще одна вещь, которую я хотел бы получить, это если я выберу какую-то папку и получу «Путь к окну Copy Finder», также указывающий текущий путь к окну, у которого нет папки, которую я выбрал. Можете ли вы помочь мне, как получить такой способ, пожалуйста? Например, я нахожусь в папке AA, AA содержит папку BB. Если я выберу папку BB и получу путь, он содержит путь только до AA, а не BB, как получить путь до BB.

Command+ I, затем скопируйте информацию в поле Где:

введите описание изображения здесь

@daviesgeek большое спасибо за вставку изображения для меня.
Без проблем. Рад, что смог помочь!
@daviesgeek Просто хочу знать, как я могу сделать командную кнопку, как вы отредактировали в моем ответе?
Ты можешь использовать<kbd>Command</kbd>
Это сломано в Йосемити
@ClintM Точно, тупой Йосемити.
@ClintM Вы все равно можете выделить и скопировать текст. Когда вы вставляете то, что скопировали, стрелки превращаются в косые черты.
@brandaemon хех... тогда это было "исправлено"... раньше это не работало

Если вам нужен путь в Терминале/iTerm, вы можете просто выбрать файл/папку в Finder, скопировать его ( Command+ C), переключиться на Терминал и вставить его ( Command+ V).

Вы также можете перетащить файл/папку в Терминал/iTerm.

Полезный ответ такому новичку, как я, вместо того, чтобы тратить много времени на установку X-ware. Оценил!
Этот ответ прост и не имеет внешних зависимостей установки...

Совет MacYourself Копирование пути к файлу или папке в буфер обмена в Mac OS X Lion у меня работает на 10.7.4. По сути, он проведет вас через этапы создания службы Automator, которую можно использовать для копирования полного пути к файлам и папкам из Finder. Затем вы используете его, назначив пользовательскую горячую клавишу или используя контекстное меню, чтобы скопировать путь в буфер обмена при выборе файла или папки.

введите описание изображения здесь

Если это поможет, вы также можете ввести следующую команду в терминал, чтобы Finder отображал полный путь к текущей папке в ее заголовке:

defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES

Используйте следующее, чтобы отключить его снова:

defaults write com.apple.finder _FXShowPosixPathInTitle -bool NO
Поскольку у вас уже есть AppleScript (при условии, что снимок экрана принадлежит вам), не могли бы вы загрузить его на такой сервис, как droplr.com, и предложить прямую ссылку для скачивания? Это будет более удобно для OP. Учитывая, что он новичок в Mac OS, я предполагаю, что ему не понравится возиться с сервисами applescripts/automator.
@XAleXOwnZX Видя, как файл живет ~/Library/Services, я думаю, что описать метод загрузки файла, а затем скопировать его сюда (поскольку ~/Libraryон скрыт по умолчанию в Lion), а затем следовать половине инструкций MacYourself, чтобы добавить ярлык, на самом деле было бы сложнее. Инструкции, предоставленные MacYourself, довольно просты.
работает, я думаю. Для таких вопросов я обычно использую создателя пакетов, чтобы создать установщик, который позаботится обо всем по мере необходимости, но я в отпуске =/
Кажется, теперь это по умолчанию для Эль-Капитана.

Если вы используете Alfred, вы можете выбрать элементы, нажать ⌥⌘\ и выбрать Копировать путь в буфер обмена.

Вы также можете назначить ярлык для скрипта следующим образом:

tell application "Finder"
    set the clipboard to POSIX path of (insertion location as alias)
end

Это скопирует пути всех выбранных элементов:

set l to {}
tell application "Finder" to repeat with f in (get selection)
    set end of l to POSIX path of (f as alias)
end repeat
set text item delimiters to linefeed
set the clipboard to (l as text)

В 10.7 и 10.8 есть ошибка , из- за которой выбор, место вставки и целевые свойства относятся ко второму переднему окну после открытия нового окна. Это влияет как на скрипты, так и на Alfred, но не на сервисы Automator. В качестве обходного пути вы можете переместить фокус на другое приложение и обратно, прежде чем получить выбор:

activate application "SystemUIServer"
activate application "Finder"
Хорошая вещь; обратите внимание, что ошибка также влияет на Альфреда. Если нужны только выбранныеinput элементы (2-й сценарий), вы можете избежать ошибки, изменив сценарий для работы и назначив его службе на основе Automator, которая получает files or foldersфайлы Finder.app. Чтобы обойти ошибку при получении места вставки Finder (1-й скрипт), вы можете применить следующий, некрасивый, но эффективный хак (работает на 10.8.2): скрыть Finder, затем снова отобразить его после небольшой задержки - это вызовет Finder сообщить о правильном месте выбора/вставки впоследствии; очевидный недостаток: мигает.

Хотя это не дает прямого ответа на ваш вопрос, у меня есть более эффективный метод получения пути к файлу (предположительно, для его вставки в терминал или текстовый файл, например). Просто перетащите файл в текстовое поле, чтобы автоматически вставить путь к файлу.

Еще несколько лет назад у меня всегда была утилита pos, написанная Гэри Кербо для улучшения взаимодействия поиск/терминал.

  • cdfбудет cdпуть к самому переднему окну Finder
  • fdcоткроет окно Finder по текущему пути к оболочке
  • posdпросто сбросил бы путь

Это в сочетании с pbcopyи pbpasteдолжно соответствовать требованиям для получения произвольных путей к текстовому формату, а затем в буфер обмена.

Я считаю, что homebrew принял часть, но не весь этот пакет, поэтому я не уверен, сможете ли вы найти работающую версию всего вышеперечисленного, но это было волшебно, когда я впервые начал его использовать. Теперь я просто использую панель запуска , чтобы перемещать файлы, не заботясь о записи конкретной папки.

posd | pbcopyзвучит так, как будто это сработает. Остальное кажется приятным (хотя open .вместо fdc?)
Это unix - должно быть n + 1 других способов выполнить большинство задач, даже если n достаточно велико. Хотя мне нравится open .- элегантно.
к сожалению, posбольше не в доморощенном.

Не знаю, почему и что я делаю, но это существует на моем ПК (High Sierra 10.13.4)

введите описание изображения здесь

Самый простой известный мне способ получить путь к файлу или папке — получить информацию о папке или файле (выберите его, щелкните правой кнопкой мыши и выберите «Получить информацию»), а затем в среднем разделе «Общие» вы можете выбрать и скопировать (команда + C) путь.

скриншот информации о файле с путем

Что касается вашего другого вопроса, щелчок по заголовкам столбцов в представлении списка в Finder позволяет вам сортировать по возрастанию или по убыванию.

Я не понимаю последний вопрос, который вы задаете - опять же, я бы сказал, перейдите к самому файлу, щелкните правой кнопкой мыши и сделайте, как я описал выше, чтобы получить путь.

Разбит в Йосемити.
не существует в High Sierra
о, подождите, он существует, но без / но показан стрелкой
но когда вы вставляете результат, стрелка вставляется как "/"

В OS X многое можно сделать с помощью перетаскивания. Apple считает, что вам не нужно иметь удобный доступ к пути к файлу, потому что все можно сделать с помощью перетаскивания. Я не совсем того же мнения, но обычно я могу делать то, что хочу.

Вот как выполняются обычные действия в OS X, где вам понадобится путь в Windows или Linux.

  • Чтобы просто узнать, где вы находитесь в Finder, щелкните правой кнопкой мыши (или щелкните левой кнопкой Command ⌘мыши) имя папки в области заголовка.

  • В диалоговом окне выбора файла, чтобы перейти к открытому расположению Finder, перетащите папку или любой файл из этой папки в диалоговое окно выбора. Это не приведет к перемещению файла или папки, как в Windows, а вместо этого установит путь к диалоговому окну «Файл». (Вы также можете перетащить значок прокси-сервера документа (из строки заголовка большинства приложений) или перетащить элементы из Dock, чтобы сделать это.)

  • Чтобы получить путь к файлу в Терминале или другом текстовом приложении, перетащите файл в окно Терминала.

Что не (легко) возможно:

  • Вставка пути к файлу, который по-разному поддерживается в приложении. Например, перетаскивание изображения в TextEdit (в режиме RichText) вставит само изображение вместо пути к файлу.
Возможная путаница: хотя команда-щелчок является правильным действием для того, что вы описываете, термин «щелчок правой кнопкой мыши» в OS X обычно относится к «щелчку управления».
@applehelpwriter Работает как при щелчке правой кнопкой мыши (то есть [Ctrl]+щелчок), так и при [Cmd ⌘]+щелчок, поэтому предложение абсолютно правильное, даже если оно было отредактировано кем-то другим.
Согласен, но я не так прочитал. Выражение «щелчок правой кнопкой мыши (или щелчок с помощью команды)» не анализируется как два разных параметра, которые должны быть «выполнить A или B». Скорее, это похоже на один вариант, которому в скобках дано альтернативное имя. Вот почему я предварил свой комментарий словами «потенциальная путаница».

Поскольку Yosemite теперь имеет выпадающие списки в стиле Windows в информационном окне, и это лучший результат Google, вот что я придумал:

  1. Нажмите Command+ I, чтобы открыть Infoокно, разделы Commentsи Previewбудут расширены по умолчанию.
  2. Перетащите значок папки предварительного просмотра в текстовое поле комментария.
  3. Command+ A, Command+ , Xчтобы сократить путь к буферу обмена и отменить изменение комментария, Command+ , Wчтобы закрыть

Что касается macOS Catalina: как сказал @Kokizzu, чтобы получить «Копировать как путь», откройте контекстное меню (щелчок правой кнопкой мыши или щелчок двумя пальцами). Когда он откроется, удерживайте нажатой alt/optionклавишу, чтобы появилась эта опция.

Чтобы скопировать активный путь в Finder, просто щелкните папку или файл, удерживая нажатой клавишу Control, чтобы открыть контекстное меню. Далее выберите copy the_folder/file_you_want. После этого вы можете вставить путь к окну терминала.

К сожалению, это не копирует весь путь (только имя).
отредактировано. Не копирует весь путь везде, а копирует в окно терминала. Если это то, что искал ОП, то это работает.

Я только что сделал быстрое действие Automator. Действие « Получить первый путь к окну Finder» позволит получить самый передний путь Posix для окон Finder. Это бета, но работает нормально. Только для версии 10.8 Он вернет путь Posix самого открытого окна Finder.

1, Откройте zip и установите его, дважды щелкнув действие.

Он войдет в список действий Utilities под названием «Получить первый путь к окну Finder».

2, перетащите его как обычно в область рабочего процесса и добавьте, например, действие «Копировать в буфер обмена» под ним.введите описание изображения здесь

Выбранная служба может быть файлом или папкой, если вы сохраните ее как «службу», это позволит вам также использовать контекстное меню при нажатии на любой файл или папку. при этом будут выполняться действия и возвращаться только результат того же окна. Не выбран файл или папка. В качестве альтернативы установите его на «нет».

Вы можете сохранить его как службу или, как я, сохранить его как приложение, а затем перетащить приложение на панель инструментов окна поиска. Где вам просто нужно нажать на нее.введите описание изображения здесь

Кнопка Copy Path Finder, безусловно, самый простой способ, который я нашел для достижения этой цели. Это так просто — загрузите его, поместите в папку «Приложения», затем перетащите на панель инструментов поисковика — готово.

Похоже, это не работает с OS X 10.9. Приложение сообщается как поврежденное, когда я пытаюсь запустить его.