Mostrar / ocultar arquivos ocultos sem reiniciar o localizador?


13

Cheguei a entender que o seguinte é a maneira de alternar a visibilidade dos arquivos ocultos:

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

Existe uma maneira de mostrar / ocultar arquivos ocultos sem matar o Finder?

Respostas:


6

Edit: Isso não parece mais funcionar desde El Capitan. killall Finderparece ser o único caminho agora.

Este é o meu método atual do El Capitan, que também deve funcionar para Mountain Lion e mais velhos

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"

Para Mavericks e Yosemite…

Você não precisa reiniciar o Finder, apenas atualize as janelas.

Este Applescript alternará o estado e atualizará ...

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

Agradecemos à ganbustein pela melhoria na rotina de esconder / mostrar


Você não precisa do tell application "System Events"bloco em torno dos dois do shell script ...comandos. De fato, estou surpreso que os Eventos do Sistema permitam que você solicite a chamada do shell script.
ganbustein

Não sou especialista nisso - Eu sempre usei apenas os eventos do sistema se eu não parecem ter 'ninguém em particular' para contar ;-)
Tetsujin

2
Ele "sempre funcionou" porque os Eventos do Sistema estão retornando um código de erro que significa "faça você mesmo", e o script está silenciosamente fazendo exatamente isso para lidar com o erro. O problema é que você invocaria do shell scriptcom os privilégios de outros aplicativos sem ter a chance de examinar o script. A Apple fez essa alteração para fechar uma brecha na segurança, na qual você pode solicitar que um programa em execução como root faça seu script para você.
precisa saber é

1
@ganbustein Eu colei sua versão em alguns outros lugares no SE. Usei isso em uma resposta. Obrigado pela contribuição. Mais apreciado.
Tetsujin 23/01

Isso é ótimo, exceto que ele não altera a área de trabalho. Também havia uma maneira de fazer isso, além de reiniciar o Finder?
TJ Luoma 02/02

10

No macOS Sierra, versão 10.12.4 e superior, você pode pressionar + Shift+ . (ponto final) para alternar os arquivos ocultos dentro do Finder.

Edição tardia: atualmente também funciona no Mojave, a partir de b5, em 18 de agosto de 2018.


@ fd0, declara "... para alternar arquivos ocultos dentro do Finder.", e a palavra-chave aqui é "alternar", o que normalmente implica pressionar a mesma combinação de teclas de atalho para ocultar / exibir arquivos ocultos neste caso de uso. 1
user3439894

Você conhece o equivalente em versões fora dos EUA?
ogerard

Não esqueça que você pode usar a mesma combinação de teclado nas caixas de diálogo Abrir / Salvar para mostrar temporariamente os arquivos ocultos.
Boris42

Ainda funciona em abr 2019!
SilverWolf - Reinstate Monica
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.