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
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örfind
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
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.