Показать / Скрыть скрытые файлы без перезапуска искателя?
13
Я понял, что следующим образом можно переключать видимость скрытых файлов:
defaults write com.apple.finder AppleShowAllFiles YES
# replace YES with NO to hide hidden files
killall -HUP Finder /System/Library/CoreServices/Finder.app
Есть ли способ показать / скрыть скрытые файлы, не убивая Finder?
Изменить: Это больше не работает, начиная с Эль-Капитан. 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.
Ганбастейн
Я не эксперт в этом - я всегда просто использовал системные события, если мне кажется, что «кому-то конкретно» нечего сказать ;-)
Tetsujin
2
Он «всегда работал», потому что системные события возвращают код ошибки, который означает «сделай сам», и сценарий молча делает именно это для обработки ошибки. Проблема в том, что вы будете вызывать do shell scriptс привилегиями другого приложения, не давая ему возможности проверить сценарий. Apple внесла это изменение, чтобы закрыть дыру в безопасности, где вы могли бы попросить программу, работающую от имени пользователя root, сделать ваш сценарий для вас.
Ганбастейн
1
@ganbustein Я вставил вашу версию в пару других мест на SE. Я использовал это в ответе. Спасибо за вклад. Наиболее ценится.
Тецудзин
Это здорово, за исключением того, что он не меняет сам рабочий стол. Есть ли способ сделать это, кроме перезапуска Finder?
TJ Luoma
10
В macOS Sierra версии 10.12.4 и выше вы можете нажимать ⌘+ Shift+ .(точка) , чтобы переключать скрытые файлы в Finder.
Позднее редактирование: в настоящее время это работает и в Мохаве, начиная с b5, 18 августа 2018 года.
@ fd0, в нем говорится «... переключать скрытые файлы внутри Finder.», а ключевое слово здесь - «переключать», что обычно подразумевает нажатие одной и той же комбинации клавиш быстрого доступа, и в этом случае скрывает / скрывает скрытые файлы. +1
user3439894
Знаете ли вы эквивалент для неамериканских версий?
ogerard
Не забывайте, что вы можете использовать ту же комбинацию клавиш в диалоговых окнах Открыть / Сохранить, чтобы временно показать скрытые файлы.
tell application "System Events"
блок вокруг двухdo shell script ...
команд. На самом деле, я удивлен, что System Events позволяет вам сказать, что он вызываетdo shell script
.do shell script
с привилегиями другого приложения, не давая ему возможности проверить сценарий. Apple внесла это изменение, чтобы закрыть дыру в безопасности, где вы могли бы попросить программу, работающую от имени пользователя root, сделать ваш сценарий для вас.В macOS Sierra версии 10.12.4 и выше вы можете нажимать ⌘+ Shift+ . (точка) , чтобы переключать скрытые файлы в Finder.
Позднее редактирование: в настоящее время это работает и в Мохаве, начиная с b5, 18 августа 2018 года.
источник