Meg kell találnom néhány rejtett mappába temetett konfigurációt, és nem tudom felidézni, hol kell közvetlenül eljutni hozzájuk. Cmd + Shift + G .
Csináltam egy sudo find -name Foo*
-et (lassú), de egyik sem adott vissza fájlok rejtett mappákban voltak.
Mi a legegyszerűbb módszer az összes rejtett fájl keresésére?
Megjegyzések
Válasz
iv class = ” Úgy tűnik, hogy a “”
mdfind
válasz sok rejtett fájlt figyelmen kívül hagy. mdfind "kMDItemFSInvisible==1&&kMDItemFSName==filename"
felsorolja a .DS_Store
fájlok, de például .bash_history
nem. Nem találtam semmilyen módot fájl keresésére s néhány rejtett könyvtárban, például /private/etc/
.
Egyébként a Bármely fájl keresése sok gyorsabb, mint a find
.
A Find Any File olyan program a Mac OS X számára, amely lehetővé teszi fájlok keresését a lemezeken.
- A Spotlight-tal ellentétben nem adatbázist használ, hanem a fájlrendszer-illesztőprogramot használja. gyors keresési műveletek, ha rendelkezésre állnak. Ez lehetővé teszi a fájl tulajdonságainak keresését, például a nevet, dátumokat, méretet stb., De a fájlok tartalmát nem (ehhez használja a Spotlight vagy az EasyFind alkalmazást).
- Bármely fájl keresése olyan fájlokat találhat, amelyeket a Spotlight nem használ , pl. a kötegekben és csomagokban, illetve a belső mappákban találhatóak, amelyeket általában kizárnak a Spotlight keresésből.
- Végül elég gyors. A keresés csak néhány másodpercet vesz igénybe egy belső merevlemezen vagy SSD-n. Próbálja meg magad!
Válasz
Feltéve, hogy a „rejtett” fájl – olyan fájlokat ért, amelyek neve ponttal kezdődik, vagy amelyek valahol egy könyvtár alatt találhatók, amelynek neve ponttal kezdődik, és nem a láthatatlan fájlok egyéb formái , a következő parancs kinyomtatja az összes rejtett fájl nevét. Lassan halad át az összes fájlnéven a rendszer mindenhol.
sudo find / -name ".*" \( -type d -exec find {} \; -prune -o -print \)
Magyarázat:
-
-type d -exec find {} \; -prune
afind
parancsot hajtja végre minden könyvtár (amelynek neve egyezik a.*
névvel), és az-prune
miatt kihagyja a könyvtárba ereszkedést. -
-type d … -o -print
minden nem könyvtárat kinyomtat, amelyek megfelelnek a.*
fájlnak.
Ha keres egy meghatározott névvel vagy mintával rendelkező fájlhoz:
sudo find / -name "Foo*" -path "*/.*"
A teljes erők */.*
mintája a rejtett könyvtár alatt legyen.
A -xdev
címet érdemes felvenni a /
után, hogy elkerülje a speciális fájlrendszerek bejárását és cserélhető lemezek.
Megjegyzések
- Ah, köszönöm. Úgy tűnik, hogy a -x-et előnyben részesítjük, mivel az -xdev elavult.
Válasz
Próbálja ki a locate
parancs. Először meg kell sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
, és várnia kell a kereső adatbázis létrehozására.
Megjegyzések
- ' akkora kellemetlenséget okoz, hogy a Spotlight nem ' nem vesz fel rejtett / (pont-) fájlokat, mert az mdfind jelentősen felülmúlja a helyeket .
Válasz
EasyFind kiváló alternatív alkalmazás a munka elvégzéséhez. Ingyenes és egyszerű. Szöveget kereshet fájlokban (akár láthatatlanokban is). < = Ez könnyebben megtalálhatja a konfigurációs fájlokat.
Az App Store-ból beszerezheti https://itunes.apple.com/us/app/easyfind/id411673888?mt=12
Jogi nyilatkozat: Nem állok kapcsolatban a fejlesztővel.
Megjegyzések
- Nem működik APFS-formátumú meghajtókon.
Válasz
ag kereshet rejtett fájlokat fájlnév szerint.
Például:
ag --hidden -g ".swiftlint.yml" ~/
Telepítés
brew install the_silver_searcher
https://github.com/ggreer/the_silver_searcher
rg gyorsabb, mint ag.
rg --files --hidden ~/ |rg ".swiftlint.yml"
Telepítés
brew install ripgrep
https://github.com/BurntSushi/ripgrep
Megjegyzések
- Hogyan segít ez az OP által leírt helyzetben (aki nyilván nem tudja, hogy ' nem ismeri a rejtett fájlok nevét)?
- Működik is. Például rg –files –hidden ~ / | rg " .swiftlint * "
Válasz
Ha keresni szeretne .DS_Store rejtett fájlok, ez a parancs jól működik.
du -a | grep .DS_Store
sudo
felesleges, kivéve, ha olyan könyvtárakban kell keresni, amelyekhez nincs hozzáférése. Rejtett könyvtárakban történő kereséshez nincs szükség magasabb jogosultságokra, ha az ' s miért használják ' t a példádban.