Potřebuji najít nějaké konfigurace zakopané v některých skrytých složkách a nemohu si vzpomenout, kde mají přímo k nim přejít Cmd + Shift + G .

Udělal jsem sudo find -name Foo* (pomalý), ale žádný z vrácených soubory byly ve skrytých složkách.

Jaký je nejjednodušší způsob prohledávání všech skrytých souborů?

Komentáře

  • Poznámka: Použití sudo je zbytečné, pokud nepotřebujete hledat v adresářích, ke kterým nemáte přístup. Hledání ve skrytých adresářích nevyžaduje zvýšená oprávnění, pokud ' proč se ' používá ve vašem příkladu.

Odpovědět

mdfind zřejmě ignoruje mnoho skrytých souborů. mdfind "kMDItemFSInvisible==1&&kMDItemFSName==filename" uvádí seznam .DS_Store soubory, ale ne například .bash_history. Nenašel jsem žádný způsob, jak vyhledat soubor s v některých skrytých adresářích, jako je /private/etc/.

Každopádně Najít libovolný soubor je spousta rychlejší než find.

Najít libovolný soubor je program pro Mac OS X, který vám umožňuje vyhledávat soubory na vašich discích.

  • Na rozdíl od Spotlightu nepoužívá databázi, ale používá ovladač systému souborů „rychlé vyhledávací operace, pokud jsou k dispozici. To vám umožní hledat vlastnosti souboru, jako je název, datum, velikost atd., Ale ne obsah souboru (k tomu použijte Spotlight nebo EasyFind).
  • Najít libovolný soubor může najít soubory, které Spotlight nezjistí , např. uvnitř balíčků a balíčků a ve vnitřních složkách, které jsou obvykle z vyhledávání Spotlight vyloučeny.
  • Nakonec je to docela rychlé. Hledání trvá jen několik sekund na interním pevném disku nebo SSD. Zkuste sami!

odpověď

Za předpokladu, že „skrytým soubor “máte na mysli soubory, jejichž název začíná tečkou nebo které jsou umístěny někde v adresáři, jehož název začíná tečkou, a nikoli jiné formy neviditelných souborů , následující příkaz vytiskne názvy všech skrytých souborů. Je to pomalé, protože jde o všechny názvy souborů všude ve vašem systému.

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

Vysvětlení:

  • -type d -exec find {} \; -prune provede find na každý adresář (jehož název se shodoval .*) a přeskočí sestup do tohoto adresáře kvůli -prune.
  • -type d … -o -print způsobí, že budou vytištěny všechny jiné než adresáře, které odpovídají .*.

Pokud hledáte pro soubor se specifickým názvem nebo vzorem:

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

Vzor */.* na celé cestě síly odpovídá být ve skrytém adresáři.

Možná budete chtít přidat -xdev za /, abyste se vyhnuli procházení speciálních souborových systémů a vyměnitelné disky.

Komentáře

  • Ah, díky. A vypadá to, že nyní je preferováno -x, protože -xdev je zastaralý.

Odpovědět

Vyzkoušejte locate příkaz. Nejprve budete muset sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist počkat, až se vygeneruje vyhledávací databáze.

Komentáře

  • ' Je to tak nepříjemné, že Spotlight ' t nesbírá skryté / (dot-) soubory, protože mdfind je mnohem lepší než slocate .

Odpověď

EasyFind je vynikající alternativní aplikace pro dokončení práce. Je to zdarma a snadné. Můžete vyhledávat text v souborech (i neviditelných). < = Toto může být jednodušší způsob, jak najít konfigurační soubory.

Můžete jej získat z App Store https://itunes.apple.com/us/app/easyfind/id411673888?mt=12

Zřeknutí se odpovědnosti: Nejsem spojen s vývojářem.

Komentáře

  • Na discích ve formátu APFS nefunguje.

Odpověď

ag může vyhledávat skryté soubory podle názvu souboru.

Například:

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

Jak nainstalovat

brew install the_silver_searcher 

https://github.com/ggreer/the_silver_searcher

rg je rychlejší než ag.

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

Jak nainstalovat

brew install ripgrep 

https://github.com/BurntSushi/ripgrep

Komentáře

  • Jak to pomůže v situaci popsané OP (kdo zjevně nezná ' název skrytých souborů)?
  • Funguje to také. Například rg –files –hidden ~ / | rg " .swiftlint * "

Odpověď

Pokud chcete hledat .DS_Store skryté soubory, tento příkaz funguje dobře.

du -a | grep .DS_Store 

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *