Jag måste hitta några konfigurationer begravda i några dolda mappar och kan inte komma ihåg var de ska navigera direkt till dem Cmd + Skift + G .

Jag gjorde en sudo find -name Foo* (långsam), men ingen av de returnerade filer fanns i dolda mappar.

Vad är det enklaste sättet att söka i alla dolda filer?

Kommentarer

  • Obs! Använda sudo är onödigt om du inte behöver söka i kataloger som du inte har tillgång till. Att söka i dolda kataloger kräver inte förhöjda behörigheter, om den ' s varför det ' används i ditt exempel.

Svar

mdfind verkar ignorera många dolda filer. mdfind "kMDItemFSInvisible==1&&kMDItemFSName==filename" listar .DS_Store filer, men inte till exempel .bash_history. Jag har inte hittat något sätt att söka efter fil s i vissa dolda kataloger som /private/etc/.

Hur som helst, Hitta valfri fil är mycket snabbare än find.

Find Any File är ett program för Mac OS X som låter dig söka efter filer på dina diskar.

  • I motsats till Spotlight använder den inte en databas utan använder istället filsystemdrivrutinen ”s snabba sökoperationer, där de är tillgängliga. Detta låter dig söka efter filegenskaper som namn, datum, storlek osv., Men inte efter filinnehåll (använd Spotlight eller EasyFind för det).
  • Hitta valfri fil kan hitta filer som Spotlight inte t , t.ex. de som finns i paket och paket och i mappar som vanligtvis är undantagna från Spotlight-sökning.
  • Slutligen är det ganska snabbt. En sökning tar bara några sekunder på en intern hårddisk eller SSD. Försök med dig själv!

Svar

Förutsatt att med ”dold fil ”menar du filer vars namn börjar med en punkt eller som ligger någonstans under en katalog vars namn börjar med en punkt och inte andra former av osynliga filer , följande kommando skriver ut namnen på alla dolda filer. Det går långsamt när det går över alla filnamnen överallt på ditt system.

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

Förklaring:

  • -type d -exec find {} \; -prune kör find på varje katalog (vars namn matchade .*) och hoppar nedåt i den katalogen på grund av -prune.
  • -type d … -o -print gör att alla icke-kataloger som matchar .* skrivs ut.

Om du letar efter för en fil med ett specifikt namn eller mönster:

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

*/.* på hela sökvägen tvingar matchningar till vara under en dold katalog.

Du kanske vill lägga till -xdev efter / för att undvika att korsa speciella filsystem och flyttbara diskar.

Kommentarer

  • Ah, tack. Och det ser ut som att -x föredras nu, eftersom -xdev är utfasad.

Svar

Testa locate -kommando. Du måste först sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist och vänta på att lokaliserings-DB ska genereras.

Kommentarer

  • Det ' är en sådan olägenhet att Spotlight inte ' t plockar upp dolda / (dot-) filer, eftersom mdfind är mycket överlägsen att placera .

Svar

EasyFind är ett utmärkt alternativ app för att få jobbet gjort. Det är gratis och enkelt. Du kan söka efter text i filer (även osynliga). < = Det här kan vara ett enklare sätt att hitta dina konfigurationsfiler.

Du kan hämta det från App Store https://itunes.apple.com/us/app/easyfind/id411673888?mt=12

Ansvarsfriskrivning: Jag är inte ansluten till utvecklaren.

Kommentarer

  • Fungerar inte på APFS-formaterade enheter.

Svar

ag kan söka dolda filer efter filnamn.

Till exempel:

ag --hidden -g ".swiftlint.yml" ~/ 

Så här installerar du

brew install the_silver_searcher 

https://github.com/ggreer/the_silver_searcher

rg är snabbare än ag.

rg --files --hidden ~/ |rg ".swiftlint.yml" 

Så här installerar du

brew install ripgrep 

https://github.com/BurntSushi/ripgrep

Kommentarer

  • Hur hjälper det i situationen som beskrivs av OP (som tydligen inte ' inte vet namnet på de dolda filerna)?
  • Det fungerar också. Till exempel rg –files –hidden ~ / | rg " .swiftlint * "

Svar

Om du vill söka .DS_Store dolda filer, det här kommandot fungerar bra.

du -a | grep .DS_Store 

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *