Показать/скрыть скрытые файлы без перезапуска искателя?

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

defaults write com.apple.finder AppleShowAllFiles YES
# replace YES with NO to hide hidden files
killall -HUP Finder /System/Library/CoreServices/Finder.app

Есть ли способ показать/скрыть скрытые файлы, не убивая Finder?

Ответы (2)

Изменить: это больше не работает со времен El Capitan. killall Finderкажется, это единственный способ сейчас.

Это мой текущий метод El Capitan, который также должен работать для Mountain Lion и старше.

set newHiddenVisiblesState to "YES"
try
    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
end try
do shell script "defaults write com.apple.finder AppleShowAllFiles " & newHiddenVisiblesState & "; killall Finder"

Для Маверикс и Йосемити…

Вам не нужно перезапускать Finder, только обновите окна.

Этот Applescript будет переключать состояние и обновлять...

set newHiddenVisiblesState to "YES"
try
    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
end try
do shell script "defaults write com.apple.finder AppleShowAllFiles " & newHiddenVisiblesState


tell application "Finder"
    set theWindows to every Finder window
    repeat with i from 1 to number of items in theWindows
        set this_item to item i of theWindows
        set theView to current view of this_item
        if theView is list view then
            set current view of this_item to icon view
        else
            set current view of this_item to list view

        end if
        set current view of this_item to theView
    end repeat
end tell

Спасибо ganbustein за улучшенную рутину прятки / шоу.

Вам не нужен tell application "System Events"блок вокруг двух do shell script ...команд. На самом деле, я удивлен, что System Events позволяет вам сказать ему вызывать do shell script.
Я не эксперт в этом - я всегда просто использовал системные события, если у меня не было «кого-то конкретного», чтобы сказать ;-)
Это «всегда работало», потому что Системные события возвращают код ошибки, который означает «сделай сам», и сценарий молча делает именно это, чтобы обработать ошибку. Проблема в том, что вы будете вызывать do shell scriptс привилегиями какого-то другого приложения, не давая ему возможности проверить скрипт. Apple внесла это изменение, чтобы закрыть дыру в безопасности, из-за которой вы могли попросить программу, работающую от имени пользователя root, выполнить ваш сценарий за вас.
@ganbustein Я вставил вашу версию в пару других мест на SE, я использовал это в ответе. Спасибо за отзыв. Наиболее ценится.
Это здорово, за исключением того, что сам рабочий стол не меняется. Есть ли способ сделать это, кроме перезапуска Finder?
Вы всегда можете просто открыть ~/Desktop как папку. Я редко храню что-либо у себя, а странные фрагменты .DS_Store и т. д. не представляют для меня особого интереса, поэтому я никогда раньше не задумывался об этом.
Вы знаете, как заставить это работать в OSX 10.11? я продолжаю получатьThe action 'run shell script' encountered an error
На 10.11 еще не пробовал - только сутки провел перед откатом; слишком много еще исправить на мой вкус.

В macOS Sierra версии 10.12.4 и выше вы можете нажать + Shift+ . (точка) , чтобы переключить скрытые файлы внутри Finder.

Позднее редактирование: в настоящее время это работает и в Мохаве, начиная с b5, 18 августа 2018 г.

@ fd0, в нем говорится: «... для переключения скрытых файлов внутри Finder», и ключевое слово здесь «переключение», что обычно подразумевает нажатие одной и той же комбинации клавиш быстрого доступа, чтобы скрыть / показать скрытые файлы в этом случае использования. +1
Знаете ли вы эквивалент на неамериканских версиях?
Не забывайте, что вы можете использовать ту же комбинацию клавиш в диалоговых окнах Open/Save для временного отображения скрытых файлов.
Все еще работает в апреле 2019!