Jak wyszukiwać wszystkie ukryte pliki znajdujące się w ukrytych folderach za pomocą terminala?

10

Muszę znaleźć kilka konfiguracji zakopanych w ukrytych folderach i nie mogę sobie przypomnieć, gdzie mają bezpośrednio do nich nawigować Cmd+ Shift+ G.

Zrobiłem sudo find -name Foo*(powoli), ale żaden ze zwróconych plików nie był w ukrytych folderach.

Jak najłatwiej przeszukać wszystkie ukryte pliki?

Stary McStopher
źródło
Uwaga: Używanie nie sudojest konieczne, chyba że musisz przeszukiwać katalogi, do których nie masz dostępu. Wyszukiwanie w ukrytych katalogach nie wymaga podwyższonych uprawnień, jeśli dlatego jest używane w twoim przykładzie.
Chris Page

Odpowiedzi:

15

mdfindwydaje się ignorować wiele ukrytych plików. mdfind 'kMDItemFSInvisible==1&&kMDItemFSName==filename'wyświetla listę .DS_Storeplików, ale nie na przykład .bash_history. Nie znalazłem żadnego sposobu wyszukiwania plików w niektórych ukrytych katalogach, takich jak /private/etc/.

W każdym razie Find Any File jest znacznie szybszy niż find.

Znajdź dowolny plik to program dla systemu Mac OS X, który pozwala wyszukiwać pliki na dyskach.

  • W przeciwieństwie do Spotlight, nie korzysta z bazy danych, ale zamiast tego korzysta z operacji szybkiego wyszukiwania sterownika systemu plików, jeśli są one dostępne. Pozwala to wyszukiwać właściwości pliku, takie jak nazwa, daty, rozmiar itp., Ale nie zawartość pliku (użyj do tego Spotlight lub EasyFind).
  • Znajdź dowolny plik może znaleźć pliki, których nie ma w Spotlight, np. Te w pakietach i pakietach oraz w folderach wewnętrznych, które zwykle są wykluczone z wyszukiwania Spotlight.
  • Wreszcie jest dość szybki. Wyszukiwanie zajmuje tylko kilka sekund na wewnętrznym dysku twardym lub dysku SSD. Spróbuj sam!
Lri
źródło
6

Zakładając, że przez „ukryty plik” rozumiesz pliki, których nazwa zaczyna się od kropki lub które znajdują się gdzieś w katalogu, którego nazwa zaczyna się od kropki, a nie inne formy plików niewidocznych , następujące polecenie wypisuje nazwy wszystkich ukrytych plików. Jest powolny, ponieważ przegląda wszystkie nazwy plików w całym systemie.

sudo find / -name '.*' \( -type d -exec find {} \; -prune -o -print \)

Wyjaśnienie:

  • -type d -exec find {} \; -prunewykonuje się findw każdym katalogu (którego nazwa jest zgodna .*) i pomija zejście do tego katalogu z powodu -prune.
  • -type d … -o -printpowoduje, że wszystkie pasujące nie-katalogi .*zostaną wydrukowane.

Jeśli szukasz pliku o określonej nazwie lub wzorze:

sudo find / -name 'Foo*' -path '*/.*'

*/.*Wzór na całych sił ścieżki pasuje być pod ukrytym katalogu.

Możesz dodać -xdevpo, /aby uniknąć przechodzenia przez specjalne systemy plików i dyski wymienne.

Gilles „SO- przestań być zły”
źródło
Ach, dzięki. I wygląda na to, że -x jest teraz preferowany, ponieważ -xdev jest przestarzałe.
Stary McStopher
4

Wypróbuj locatepolecenie. sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plistNajpierw musisz poczekać na wygenerowanie zlokalizowanej bazy danych.

Jay Thompson
źródło
3
Jest to takie uciążliwe, że Spotlight nie pobiera ukrytych / (kropkowych) plików, ponieważ mdfind jest znacznie lepszy niż slocate.
Jason Salaz,
2

EasyFind to doskonała alternatywna aplikacja do wykonania zadania. To jest darmowe i łatwe. Możesz wyszukiwać tekst w plikach (nawet niewidocznych). <= Może to być łatwiejszy sposób na znalezienie plików konfiguracyjnych.

Możesz pobrać go ze sklepu App Store https://itunes.apple.com/us/app/easyfind/id411673888?mt=12

Oświadczenie: Nie jestem powiązany z programistą.

Nohl
źródło
Nie działa na dyskach w formacie APFS.
Victor Engel