Ik moet een aantal configuraties vinden die begraven zijn in een aantal verborgen mappen en kan me niet herinneren waar ze zijn om er rechtstreeks naartoe te navigeren Cmd + Shift + G .

Ik deed een sudo find -name Foo* (langzaam), maar geen van de geretourneerde bestanden bevonden zich in verborgen mappen.

Wat is de gemakkelijkste manier om in alle verborgen bestanden te zoeken?

Opmerkingen

  • Opmerking: gebruik sudo is niet nodig, tenzij je moet zoeken in mappen waartoe je geen toegang hebt. Zoeken in verborgen mappen vereist geen verhoogde rechten, als dat ' s waarom het ' s wordt gebruikt in uw voorbeeld.

Antwoord

mdfind lijkt veel verborgen bestanden te negeren. mdfind "kMDItemFSInvisible==1&&kMDItemFSName==filename" vermeldt .DS_Store bestanden, maar niet bijvoorbeeld .bash_history. Ik heb “geen manier gevonden om naar een bestand te zoeken s in sommige verborgen mappen zoals /private/etc/.

Hoe dan ook, Find Any File is veel sneller dan find.

Find Any File is een programma voor Mac OS X waarmee u naar bestanden op uw schijven kunt zoeken.

  • In tegenstelling tot Spotlight gebruikt het geen database, maar in plaats daarvan het bestandssysteemstuurprogramma “s snelle zoekbewerkingen, indien beschikbaar. Hiermee kun je zoeken naar bestandseigenschappen zoals naam, datums, grootte, enz., Maar niet naar bestandsinhoud (gebruik daarvoor Spotlight of EasyFind).
  • Elk bestand zoeken kan bestanden vinden die Spotlight niet , bijv. die in bundels en pakketten en in mappen die meestal worden uitgesloten van Spotlight-zoeken.
  • Ten slotte is het vrij snel. Een zoekopdracht duurt maar een paar seconden op een interne harde schijf of SSD. Probeer jezelf!

Antwoord

Ervan uitgaande dat door “verborgen bestand “u bedoelt bestanden waarvan de naam begint met een punt of die zich ergens onder een map bevinden waarvan de naam begint met een punt, en niet andere vormen van onzichtbare bestanden , het volgende commando drukt de namen van alle verborgen bestanden af. Het is traag omdat het alle bestandsnamen overal op uw systeem doorneemt.

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

Uitleg:

  • -type d -exec find {} \; -prune voert find uit op elke directory (waarvan de naam overeenkwam met .*), en het afdalen naar die directory overslaat vanwege de -prune.
  • -type d … -o -print zorgt ervoor dat alle niet-mappen die overeenkomen met .* worden afgedrukt.

Als je zoekt voor een bestand met een specifieke naam of patroon:

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

Het */.* patroon op het hele pad dwingt overeenkomsten af met zich in een verborgen map bevinden.

Misschien wilt u -xdev toevoegen na / om te voorkomen dat u speciale bestandssystemen en verwijderbare schijven.

Reacties

  • Ah, bedankt. En het lijkt erop dat -x nu de voorkeur heeft, aangezien -xdev verouderd is.

Antwoord

Probeer de locate commando. U moet eerst sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist wachten tot de lokalisatiedatabase is gegenereerd.

Opmerkingen

  • Het ' is zo vervelend dat Spotlight geen ' verborgen / (dot-) bestanden oppikt, omdat mdfind veel beter is dan slocaties .

Antwoord

EasyFind is een uitstekende alternatieve app om de klus te klaren. Het is gratis en gemakkelijk. U kunt zoeken naar tekst in bestanden (zelfs onzichtbare). < = Dit is misschien een gemakkelijkere manier om uw configuratiebestanden te vinden.

Je kunt het downloaden in de App Store https://itunes.apple.com/us/app/easyfind/id411673888?mt=12

Disclaimer: Ik ben niet aangesloten bij de ontwikkelaar.

Reacties

  • Werkt niet op APFS-geformatteerde schijven.

Answer

ag kan verborgen bestanden zoeken op bestandsnaam.

Bijvoorbeeld:

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

Hoe te installeren

brew install the_silver_searcher 

https://github.com/ggreer/the_silver_searcher

rg is sneller dan ag.

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

Hoe te installeren

brew install ripgrep 

https://github.com/BurntSushi/ripgrep

Reacties

  • Hoe helpt dit in de situatie beschreven door het OP (die kennelijk ' de naam van de verborgen bestanden niet kent)?
  • Het werkt ook. Bijvoorbeeld: rg –files –hidden ~ / | rg " .swiftlint * "

Answer

Als je wilt zoeken .DS_Store verborgen bestanden, deze opdracht werkt goed.

du -a | grep .DS_Store 

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *