Pokaż / Ukryj ukryte pliki bez ponownego uruchamiania wyszukiwarki?

13

Zrozumiałem, że w następujący sposób można przełączać widoczność ukrytych plików:

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

Czy istnieje sposób pokazywania / ukrywania ukrytych plików bez zabijania Findera?

Vivek Ragunathan
źródło

Odpowiedzi:

6

Edycja: Wygląda na to, że nie działa już od El Capitan. killall Finderwydaje się teraz jedynym sposobem.

To moja obecna metoda El Capitan, która powinna również działać dla Mountain Lion i starszych

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"

Dla Mavericks i Yosemite…

Nie trzeba ponownie uruchamiać Findera, wystarczy odświeżyć okna.

Ten Applescript przełączy stan i odświeży ...

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

Kredyt dla ganbustein dla poprawy Ukryj / Pokaż rutynowych

Tetsujin
źródło
Nie potrzebujesz tell application "System Events"bloku wokół dwóch do shell script ...poleceń. W rzeczywistości jestem zaskoczony, że System Events pozwala ci to wywołać do shell script.
ganbustein
Nie jestem w tym ekspertem - zawsze korzystałem ze zdarzeń systemowych, jeśli wydaje mi się, że nie mam nikogo konkretnego do powiedzenia ;-)
Tetsujin
2
„Zawsze działało”, ponieważ System Events zwraca kod błędu oznaczający „zrób to sam”, a skrypt po cichu robi to, aby obsłużyć błąd. Problem polega na tym, że korzystasz do shell scriptz uprawnień innych aplikacji bez możliwości sprawdzenia skryptu. Firma Apple dokonała tej zmiany, aby zamknąć lukę w zabezpieczeniach, w której można poprosić program działający jako root o wykonanie skryptu za Ciebie.
ganbustein
1
@ganbustein Wkleiłem twoją wersję w kilku innych miejscach na SE. Użyłem tego w odpowiedzi. Dzięki za wkład. Najbardziej ceniony.
Tetsujin
Jest to świetne, tyle że nie zmienia samego pulpitu. Czy istnieje też inny sposób niż ponowne uruchomienie Findera?
TJ Luoma
10

W systemie macOS Sierra w wersji 10.12.4 i nowszej możesz nacisnąć + Shift+ . (kropka) , aby przełączyć ukryte pliki w Finderze.

Późna edycja: obecnie działa to również w Mojave, od b5, 18 sierpnia 2018 r.

Viktorstrate
źródło
@ fd0, stwierdza: „... przełączać ukryte pliki w Finderze.”, a kluczowym słowem tutaj jest „przełączać”, co zwykle oznacza naciśnięcie tej samej kombinacji klawiszy skrótu, która ukrywa / odkrywa ukryte pliki w tym przypadku użycia. +1
użytkownik3439894
Czy znasz odpowiednik wersji spoza USA?
ogerard
Nie zapominaj, że możesz użyć tej samej kombinacji klawiatury w oknach dialogowych Otwórz / Zapisz, aby tymczasowo pokazać ukryte pliki.
boris42
Nadal działa w kwietniu 2019 roku!
SilverWolf - Przywróć Monikę