Wie suche ich alle versteckten Dateien, die sich in versteckten Ordnern befinden, mit Terminal?

10

Ich brauche ein paar configs in einigen versteckten Ordner begraben zu finden und kann sich nicht erinnern , wo sie ihnen zu navigieren sind direkt Cmd+ Shift+ G.

Ich habe eine sudo find -name Foo*(langsame) gemacht, aber keine der zurückgegebenen Dateien befand sich in versteckten Ordnern.

Was ist der einfachste Weg, um alle versteckten Dateien zu durchsuchen?

Alter McStopher
quelle
Hinweis: Die Verwendung sudoist nur erforderlich, wenn Sie in Verzeichnissen suchen müssen, auf die Sie keinen Zugriff haben. Das Suchen in versteckten Verzeichnissen erfordert keine erhöhten Berechtigungen, wenn es deshalb in Ihrem Beispiel verwendet wird.
Chris Seite

Antworten:

14

mdfindscheint viele versteckte Dateien zu ignorieren. mdfind 'kMDItemFSInvisible==1&&kMDItemFSName==filename'listet .DS_StoreDateien auf, aber nicht zum Beispiel .bash_history. Ich habe keine Möglichkeit gefunden, in einigen versteckten Verzeichnissen wie nach Dateien zu suchen /private/etc/.

Wie auch immer, Find Any File ist viel schneller als find.

Find Any File ist ein Programm für Mac OS X, mit dem Sie nach Dateien auf Ihren Festplatten suchen können.

  • Im Gegensatz zu Spotlight wird keine Datenbank verwendet, sondern die schnellen Suchvorgänge des Dateisystemtreibers, sofern verfügbar. Auf diese Weise können Sie nach Dateieigenschaften wie Name, Datum, Größe usw. suchen, jedoch nicht nach Dateiinhalten (verwenden Sie dazu Spotlight oder EasyFind).
  • Jede Datei suchen kann Dateien finden, die Spotlight nicht findet, z. B. solche in Bundles und Paketen sowie in Ordnern, die normalerweise von der Spotlight-Suche ausgeschlossen sind.
  • Schließlich ist es ziemlich schnell. Eine Suche auf einer internen Festplatte oder SSD dauert nur wenige Sekunden. Probieren Sie es aus!
Lri
quelle
6

Angenommen, mit "versteckte Datei" sind Dateien gemeint, deren Name mit einem Punkt beginnt oder die sich irgendwo unter einem Verzeichnis befinden, dessen Name mit einem Punkt beginnt, und nicht mit anderen Formen unsichtbarer Dateien . Der folgende Befehl gibt die Namen aller versteckten Dateien aus. Es ist langsam, da es alle Dateinamen überall auf Ihrem System durchläuft.

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

Erläuterung:

  • -type d -exec find {} \; -prunewird findin jedem Verzeichnis ausgeführt (dessen Name übereinstimmt .*) und überspringt aufgrund des -prune.
  • -type d … -o -printbewirkt, dass alle übereinstimmenden Nichtverzeichnisse .*gedruckt werden.

Wenn Sie nach einer Datei mit einem bestimmten Namen oder Muster suchen:

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

Das */.*Muster auf dem gesamten Pfad erzwingt, dass sich Übereinstimmungen in einem versteckten Verzeichnis befinden.

Möglicherweise möchten Sie hinzufügen , -xdevnachdem die /spezielle Dateisysteme und Festplatten zu vermeiden , durchlaufen.

Gilles 'SO - hör auf böse zu sein'
quelle
Ah danke. Und es sieht so aus, als ob -x jetzt bevorzugt wird, da -xdev veraltet ist.
Alter McStopher
4

Versuchen Sie den locateBefehl. Sie müssen sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plistzuerst warten, bis die Lokalisierungsdatenbank generiert wurde.

Jay Thompson
quelle
3
Es ist so lästig, dass Spotlight keine versteckten / (Punkt-) Dateien aufnimmt, weil mdfind dem Slocate weit überlegen ist.
Jason Salaz
2

EasyFind ist eine hervorragende alternative App, um die Arbeit zu erledigen. Es ist kostenlos und einfach. Sie können in Dateien nach Text suchen (auch in unsichtbaren). <= Dies ist möglicherweise eine einfachere Möglichkeit, Ihre Konfigurationsdateien zu finden.

Sie können es im App Store unter https://itunes.apple.com/us/app/easyfind/id411673888?mt=12 herunterladen

Haftungsausschluss: Ich bin nicht mit dem Entwickler verbunden.

Nohl
quelle
Funktioniert nicht auf APFS-formatierten Laufwerken.
Victor Engel