Jeg trenger å finne noen konfigurasjoner begravet i noen skjulte mapper og kan ikke huske hvor de skal navigere direkte til dem Cmd + Shift + G .
Jeg gjorde en sudo find -name Foo*
(treg), men ingen av de returnerte filer var i skjulte mapper.
Hva er den enkleste måten å søke i alle skjulte filer?
Kommentarer
Svar
mdfind
ser ut til å ignorere mange skjulte filer. mdfind "kMDItemFSInvisible==1&&kMDItemFSName==filename"
viser .DS_Store
filer, men ikke for eksempel .bash_history
. Jeg har ikke funnet noen måte å søke etter fil på s i noen skjulte kataloger som /private/etc/
.
Uansett, Finn hvilken som helst fil er mye raskere enn find
.
Finn hvilken som helst fil er et program for Mac OS X som lar deg søke etter filer på diskene dine.
- I motsetning til Spotlight bruker den ikke en database, men bruker i stedet filsystemdriveren «raske søkeoperasjoner, der det er tilgjengelig. Dette lar deg søke etter filegenskaper som navn, datoer, størrelse osv., Men ikke etter filinnhold (bruk Spotlight eller EasyFind for det).
- Finn hvilken som helst fil kan finne filer som Spotlight ikke t , for eksempel de som er inne i pakker og pakker, og i innvendige mapper som vanligvis er ekskludert fra Spotlight-søk.
- Endelig er det ganske raskt. Et søk tar bare noen få sekunder på en intern harddisk eller SSD. Prøv for deg selv!
Svar
Forutsatt at ved «skjult fil ”du mener filer hvis navn begynner med en prikk eller som ligger et sted under en katalog der navnet begynner med en prikk, og ikke andre former for usynlige filer , følgende kommando skriver ut navnene på alle skjulte filer. Det går sakte når det går over alle filnavnene overalt på systemet.
sudo find / -name ".*" \( -type d -exec find {} \; -prune -o -print \)
Forklaring:
-
-type d -exec find {} \; -prune
utførerfind
på hver katalog (hvis navn samsvarte med.*
), og hopper nedover i den katalogen på grunn av-prune
. -
-type d … -o -print
fører til at alle ikke-kataloger som samsvarer med.*
skrives ut.
Hvis du ser etter for en fil med et bestemt navn eller mønster:
sudo find / -name "Foo*" -path "*/.*"
*/.*
mønsteret på hele banen tvinger samsvar til være under en skjult katalog.
Det kan være lurt å legge til -xdev
etter /
for å unngå å krysse spesielle filsystemer og flyttbare disker.
Kommentarer
- Ah, takk. Og det ser ut til at -x er foretrukket nå, ettersom -xdev er utfaset.
Svar
Prøv locate
kommando. Du må sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
først og vente på at lokaliserings-DB skal genereres.
Kommentarer
- Det ' er en slik plage at Spotlight ikke ' t plukker opp skjulte / (dot-) filer, fordi mdfind er langt bedre enn å plassere .
Svar
EasyFind er et utmerket alternativ app for å få jobben gjort. Det er gratis og enkelt. Du kan søke etter tekst i filer (til og med usynlige). < = Dette kan være en enklere måte å finne konfigurasjonsfilene dine.
Du kan få det fra App Store https://itunes.apple.com/us/app/easyfind/id411673888?mt=12
Ansvarsfraskrivelse: Jeg er ikke tilknyttet utvikleren.
Kommentarer
- Fungerer ikke på APFS-formaterte stasjoner.
Svar
ag kan søke i skjulte filer etter filnavn.
For eksempel:
ag --hidden -g ".swiftlint.yml" ~/
Slik installerer du
brew install the_silver_searcher
https://github.com/ggreer/the_silver_searcher
rg er raskere enn ag.
rg --files --hidden ~/ |rg ".swiftlint.yml"
Slik installerer du
brew install ripgrep
https://github.com/BurntSushi/ripgrep
Kommentarer
- Hvordan hjelper dette i situasjonen beskrevet av OP (som tilsynelatende ikke ' ikke vet navnet på de skjulte filene)?
- Det fungerer også. For eksempel rg –filer – skjult ~ / | rg " .swiftlint * "
Svar
Hvis du vil søke .DS_Store skjulte filer, denne kommandoen fungerer bra.
du -a | grep .DS_Store
sudo
er unødvendig med mindre du trenger å søke i kataloger som du ikke har tilgang til. Søking i skjulte kataloger krever ikke forhøyede rettigheter, hvis den ' hvorfor det ' brukes i eksemplet ditt.