ОТКАЗ / ПРЕДУПРЕЖДЕНИЕ
Скрытые файлы обычно скрыты. Используйте сценарий ниже, только если вы достаточно уверены, что знаете, что делаете. Другими словами: если вы сломаете свою систему путем случайного удаления скрытых файлов, это ваша собственная ошибка.
Вот скрипт, который я использую для переключения показа / не показа скрытых файлов внутри 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 - или какой-либо другой способ избавиться от взлома «сна» - я был бы рад это услышать!