Горячая клавиша для отображения скрытых файлов и папок в диалоговом окне открытия файла?

Этот вопрос очень похож на вопрос Можно ли всегда отображать скрытые/точечные файлы в диалоговых окнах открытия/сохранения? . Как показать скрытые файлы и папки в Finder? также связано. Однако я не хочу всегда показывать их, и это то, что defaults write ... AppleShowAllFiles ...нужно.

Скорее, я хочу включить его, когда это необходимо. Я пытаюсь открыть .bash_profile, так что мне нужно сейчас:

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

Linux и Gnome позволяют CTRL+ Hпереключаться между отображением и скрытием скрытых файлов. Но горячие клавиши Gnome не работают в OS X (что и ожидается).

Для полноты .bash_profileв домашнем каталоге существует:

$ ls ~/.bash_profile 
/Users/jww/.bash_profile

Попутный вопрос... Как видно выше, набрав имя файла в Finder (или это Spotlight) поиск не сработал. Я попытался щелкнуть правой кнопкой мыши, чтобы открыть контекстное меню в диалоговом окне «Открыть файл», в надежде установить флажок «показать все файлы». И я попробовал меню «Вид» в поисках «показать все файлы» с открытым диалоговым окном «Открыть файл».

Почему это где-то спрятано? Какой цели служит запрет пользователю легко открывать файл?

Ответы (3)

⌘ CMD+ ⇧ SHIFT+ .показывает скрытые файлы в диалогах Finder и Open/Save.

Если вы используете клавиатуру AZERTY, вам также нужно будет нажимать fn, что ⇧ SHIFTпринимается во внимание, так как она вам уже нужна для создания файла ..


Также можно нажать ⌘ CMD+ ⇧ SHIFT+ Gи ввести путь к скрытой папке, как в Терминале ( ⇥ TABтоже работает автодополнение).

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

У меня работает в представлении «Столбец», если я меняю путь — перехожу на другой диск и обратно и т. д. — или меняю представление на значок и обратно.
Сочетание клавиш «cmd+shift+». кажется, работает в более широком масштабе в Finder в Sierra (не только в диалоговых окнах «Открыть / Сохранить»), а также в нескольких представлениях.
Ничего себе, не могу поверить, что для этого есть ярлык, как странно специфично. Спасибо!
@Mateusz, cmdshiftG работает даже без первой cmdshiftdot?
@Pacerier конечно, почему бы и нет?
@MateuszSzlosek, похоже, у меня не работает. cmdshiftG не может выбрать скрытый файл, если я сначала не сделаю cmdshiftdot. Это работает для вас?
Ах, я понимаю, что вы имеете в виду. Итак, да, CMD+SHIFT+G не выберет скрытый файл, если вы не откроете их с помощью CMD+SHIFT+. Но вы по-прежнему можете переходить к скрытым папкам, используя CMD+SHIFT+G, не открывая их. Хорошая точка зрения!
Увы, в Эль-Капитане это не работает.
Я использовал defaultsкоманду, чтобы сделать это в течение многих лет, и я не знал о ярлыке. Это действительно лучший ответ на этот вопрос 👍
Не работает в Мохаве. Он просто показывает/скрывает строку состояния.
@redbeam_ Он все еще работает у меня в Мохаве [10.14.3 Beta (18D32a)] при открытии/сохранении и в Finder. Скрытие/отображение строки состояния выполняется с помощью + /.
Я обнаружил, что это работает в диалогах открытия/сохранения, но не в Finder. Комбинация «команда» + «косая черта» ничего не делает. Может быть, это из-за того, что моя раскладка клавиатуры словацкая? Кстати, у меня MacOS последней версии.

Матеуш Шлосек сделал кавер на первую часть. Ниже показано, как я обработал вторую часть для собственного использования.

В спешке опубликовать свой ответ я не понял, что на вторую часть уже был дан ответ. См. Как установить ⌘ + H, чтобы включить отображение скрытых файлов . То, что я предлагаю ниже, отличается диалогом, информирующим вас о текущем статусе.

Я создал сервис с помощью приложения Automator. Когда я хочу переключить просмотр скрытых файлов, я выбираю «Переключить скрытые файлы» в подменю служб Finder, как показано ниже. (Подсказка: щелкните изображение для лучшего просмотра.)

Это приведет к появлению любого всплывающего окна, показанного ниже.

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

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

Шаги по созданию сервиса приведены ниже.

  1. Откройте Automator, выберите новый документ типа Услуга.
  2. Перетащите действие «Запустить сценарий оболочки» на панель рабочего процесса.
  3. Отредактируйте содержимое, чтобы оно отображалось, как показано ниже. (Подсказка: щелкните изображение для лучшего просмотра.)

    Текст сценария повторяется ниже.

    STATUS=`defaults read com.apple.finder AppleShowAllFiles 2>/dev/null`
    if [ "$STATUS" == TRUE ]; then
        STATUS=`osascript -e 'tell app "Finder" to display alert "Finder is showing hidden files." buttons {"Cancel", "Hide"}'`
    else
        STATUS=`osascript -e 'tell app "Finder" to display alert "Finder is not showing hidden files." buttons {"Cancel", "Show"}'`
    fi
    if [ "$STATUS" == "button returned:Show" ]; then
        defaults write com.apple.finder AppleShowAllFiles TRUE
        killall Finder
    elif [ "$STATUS" == "button returned:Hide" ]; then
        defaults write com.apple.finder AppleShowAllFiles FALSE
        killall Finder
    fi
    
  4. Сохраните (или переместите) Toggle Hidden Files.workflowфайл в ~/Library/Servicesпапку.
  5. Возможно, вам придется перезапустить приложение Finder, чтобы служба появилась в меню.

Обновление 1

Основываясь на ответе Матеуша Шлосека, я вижу, что для моего сервиса можно добавить сочетание клавиш ⌘ CMD+ ⇧ SHIFT+ . .Перейдите в «Системные настройки» и щелкните значок «Клавиатура». Выберите «Службы», затем «Переключить скрытые файлы» под заголовком «Общие». Замените «none» на сочетание клавиш ⌘ CMD+ ⇧ SHIFT+ ..

Я сделал именно так, как вы сказали (у меня в папке ~/Library/Services есть указанный файл), но безрезультатно даже после перезагрузки компьютера.
@Walter: я добавил на Toggle Hidden Files.workflowSourceforge.net. См. сайт: Переключить скрытые файлы . Вы можете скачать рабочий процесс оттуда. Инструкции по установке также показаны на этом сайте.
Зачем менять встроенную комбинацию клавиш, которая работает в диалоговых окнах файлов, на службу, которая не работает и которая закрывает Finder? (Выход из Finder может привести к закрытию окна Finder переднего плана.)

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ / ПРЕДУПРЕЖДЕНИЕ

Скрытые файлы обычно скрыты по какой-то причине. Используйте приведенный ниже сценарий только в том случае, если вы достаточно уверены, что знаете, что делаете. Другими словами: если вы сломаете свою систему, случайно удалив скрытые файлы, это ваша вина.


Вот скрипт, который я использую для переключения показывать/не показывать скрытые файлы в Finder .

(Собственный ярлык OSX для переключения скрытых файлов в диалогах открытия/сохранения уже упоминался Матеушем Шлосеком выше)

Разница между моим сценарием и другими, которые я видел до сих пор:

Большинство скриптов больше ничего не делают после убийства Finder. Обычно это означает, что вам нужно вернуться к папке, в которой вы находились изначально, поскольку автоматический перезапуск Finder не может надежно открыть вашу последнюю активную папку.

Вместо этого приведенный ниже сценарий повторно открывает вашу последнюю активную папку, т. е. папку, в которой вы находились при использовании переключателя, но теперь показывает (или не показывает) скрытые файлы.

Я назначил ему ярлык (cmd+shift+.) и считаю, что работать со скрытыми файлами в Finder стало намного удобнее.

Спасибо Тецуджину, который некоторое время назад разместил на этом сайте скрипт, который я адаптировал, чтобы добавить функцию «повторно открыть последнюю папку».

on run {input, parameters}
    tell application "Finder"
        set var1 to POSIX path of (target of window 1 as alias)
    end tell
    set newHiddenVisiblesState to "YES"
    set oldHiddenVisiblesState to do shell script "defaults read com.apple.finder AppleShowAllFiles"
    if oldHiddenVisiblesState is in {"1", "YES"} then
        set newHiddenVisiblesState to "NO"
    end if
    do shell script "defaults write com.apple.finder AppleShowAllFiles " & newHiddenVisiblesState
    ---- Sleep hack mentioned below. 0.5s minimum, 1-2s safer. Ugly, but (probably) unavoidable.
    do shell script "killall Finder; sleep 0.5s"
    tell application "Finder"
        ---- Close other windows if Finder managed to relaunch already
        if application "Finder" is running then
            close every window
        end if
        open (var1 as POSIX file)
        activate
    end tell
end run

Чтобы использовать сценарий: откройте новый рабочий процесс в Automator, перетащите «Запустить AppleScript», скопируйте и вставьте приведенный выше код и сохраните его в папке служб (обычно ~/Library/Services/, если честно).

Прикрепление ярлыка для выполнения скрипта должно быть описано где-то еще на этом сайте. Я ограничил область действия своего ярлыка только Finder.


Примечание стиля:

Мне пришлось прибегнуть к уродливому взлому, используя «сон» после убийства Finder, прежде чем вручную открыть исходную папку.

Если я не форсирую эту задержку, есть шанс, что OSX уже перезапустил Finder и открыл папку (не обязательно последнюю активную, по моему опыту). Вместе с моей собственной командой «открыть» это может привести к неприятному эффекту запуска двух (даже неубиваемых) процессов Finder, и Finder больше не работает. Если это происходит, выход из системы и повторный вход исправляет это, но очевидно, что это пустая трата времени, поэтому я использую «сон».

Для меня работает значение сна 0,5 с, но на всякий случай вы можете немного увеличить его (тогда добавив более заметную задержку в процесс).

Если кто-то знает способ либо подавить перезапуск Finder и ненадежное открытие какого-либо окна после отправки сигнала killall, либо какой-то другой способ избавиться от взлома «сна», я был бы рад услышать это!