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

262

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

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

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

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

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

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

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

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

Сообщество
источник

Ответы:

452

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

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


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

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

Матеуш Шлосек
источник
7
Работает для меня в режиме просмотра столбцов, если я изменяю путь - перехожу на другой диск и обратно и т. Д. - или меняю вид на значок и обратно.
Tetsujin
10
Сочетание клавиш «cmd + shift +». кажется, работает в более широком масштабе в Finder в Sierra (не только в диалогах открытия / сохранения), а также в нескольких представлениях.
Найл
4
Ничего себе, не могу поверить, что для этого есть кратчайший путь, как это ни странно. Спасибо!
Иезекииль Виктор
1
@MateuszSzlosek, похоже, не работает для меня. cmdshiftG не может выбрать скрытый файл, если я сначала не сделаю cmdshiftdot. У тебя работает?
Pacerier
2
Ах, я понимаю, что вы имеете в виду. Так что да, CMD + SHIFT + G не выберет скрытый файл, если вы не откроете его с помощью CMD + SHIFT +. Но вы все равно можете перемещаться к скрытым папкам, используя CMD + SHIFT + G, не раскрывая их. Хорошая точка зрения!
Матеуш Шлосек
23

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

Спеша опубликовать свой ответ, я не понял, что вторая часть уже получила ответ. См. Как установить ⌘ + 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+ .может быть добавлено для моего сервиса. Перейдите в Системные настройки и нажмите значок клавиатуры. Выберите «Службы», затем «Переключить скрытые файлы» под заголовком «Общие». Замените «нет» сочетанием клавиш ⌘ CMD+ ⇧ SHIFT+ ..

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

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

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


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

(Родной ярлык OSX для переключения скрытых файлов в диалогах Open / Save уже упоминал Mateusz Szlosek выше)

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

Большинство сценариев больше ничего не делают после убийства 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 /, afaik).

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


Стильное замечание:

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

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

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

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

Берт Зангл
источник