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

74

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

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

Гиппопотам
источник
4
@AdamEberbach Я не согласен, вопрос, который вы связали, касается запуска экземпляра терминала по текущему пути Finder, это просто получение пути
Кайл Кронин,
2
Можете ли вы объяснить, что вы подразумеваете под копированием пути? Хочешь в буфер обмена в развернутом виде /Volumes/whatever/path/to/frontmost/window/viewили что-то еще? По сути, каков следующий шаг, который вы собираетесь выполнить с помощью пути, когда он у вас есть?
bmike
2
@ Адам: Не совсем. Я ищу быстрый метод - похожий на тот, к которому я привык в Windows и Linux (то есть либо нажатие пары клавиш, либо нажатие и нажатие клавиши или двух).
Бегемот
1
@ TimothyMueller-Harder: Хотя этот вопрос похож, существует разница между получением пути к файлу или папке в Finder и получением пути к активному окну, особенно если что-то уже выбрано в этом окне.
Джоэлсеф
1
@BlankMan Вот ответ на ваш второй вопрос apple.stackexchange.com/questions/40194/…
MrDaniel

Ответы:

25

Option+ Command+C

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

shahid610169
источник
4
Спасибо, это очень точный ответ, который я хотел услышать.
Цонгор Халмай
2
Должен быть принятый ответ.
Людовик Куты
36

Вы можете использовать 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

joelseph
источник
Спасибо, это работает для меня, но еще одна вещь, которую я хотел бы получить: если я выберу какую-нибудь папку и получу «Копировать окно поиска пути», также давая текущий путь окна, в котором нет той папки, которую я выбрал. Можете ли вы помочь мне, как получить такой путь, пожалуйста? Например, я в папке AA, AA содержит папку BB. Если я выберу папку BB и получу путь, она содержит путь до AA, а не BB, как получить путь до BB.
Вс
33

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

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

pwd | pbcopy

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

Кайл Кронин
источник
Ооо - отличное использование DTerm. Я никогда не тратил достаточно времени, чтобы понять его истинную силу, но больше людей, которых я знаю, клянутся этим, чем этим.
bmike
@bmike Да, я не часто его использую, но это была моя первая мысль, когда я прочитал этот вопрос (после того, как обнаружил, что Finder действительно не имеет этой функции, встроенной по умолчанию). Преимущество этого метода в том, что DTerm - это инструмент общего назначения, а не то, что нужно устанавливать или настраивать для этой конкретной цели.
Кайл Кронин
2
Это именно то, что я использую DTerm большую часть времени!
Jtbandes
30

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

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

револьвер
источник
@daviesgeek большое спасибо за вставку изображения для меня.
револьвер
Нет проблем. Рад, что смог помочь!
daviesgeek
7
Это сломано в Йосемити
КлинтМ
4
@ClintM Вы все еще можете выбрать и скопировать текст. Когда вы вставляете то, что скопировали, стрелки превращаются в косые черты.
Создатель
1
@brandaemon хе ... тогда это было "исправлено" ... раньше это не работало
ClintM
22

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

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

corion
источник
4
Полезный ответ новичку, подобному мне, вместо того, чтобы тратить много времени на установку программного обеспечения «X». Ценится!
Энрике де Соуза
Этот ответ прост и не имеет внешних зависимостей установки ...
Тони Кронин,
8

Совет 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
binarybob
источник
Поскольку у вас уже есть AppleScript (предполагается, что снимок экрана - ваш), не могли бы вы загрузить его на сервис, такой как droplr.com, и предложить прямую ссылку для скачивания, пожалуйста? Это будет более удобным для ОП. Учитывая, что он новичок в Mac OS, я предполагаю, что ему не понравится возиться с сервисами applecripts / automator
Александр
@XAleXOwnZX Видя, как файл живет, ~/Library/Servicesя думаю, описать метод загрузки файла, затем скопировать его здесь (как ~/Libraryэто скрыто по умолчанию в Lion), а затем выполнить половину инструкций MacYourself, чтобы добавить ярлык на самом деле было бы более сложно. Инструкции, предоставленные MacYourself, довольно просты для подражания.
двоичный боб
работает, я думаю. Lol для таких вопросов, я бы обычно использовал создатель пакетов, чтобы создать установщик, который позаботится обо всем, как нужно, но я в отпуске = /
Александр
Похоже, это по умолчанию на El Captain
Уильям
8

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

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

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 есть ошибка, в которой свойства selection, location и target ссылаются на второе переднее окно после открытия нового окна. Это влияет как на сценарии, так и на Альфреда, но не на службы Automator. В качестве обходного пути вы можете переместить фокус в другое приложение и обратно, прежде чем получить выбор:

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

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

Александр
источник
4

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

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

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

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

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

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

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

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

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

Горб
источник
1
Сломанный в Йосемити.
Jcollum
не существует в Высокой Сьерре
Kokizzu
о, подождите, оно существует, но без / но показано стрелкой
Kokizzu
но когда вы вставляете результат, стрелка вставляется как "/"
Горб
2

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

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

Kokizzu
источник
1

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

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

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

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

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

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

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

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

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

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

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

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

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

Это войдет в название Utilities Actions 'Get first Finder Window Path'

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

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

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

markhunte
источник
0

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

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