Datei finden, aber nicht in Verzeichnissen mit dem Namen X

Datei finden, aber nicht in Verzeichnissen mit dem Namen X

Ich verwende find (insbesondere das Tool, das unter Windows mit Git geliefert wird), um nach Dateien zu suchen. Ich möchte insbesondere mein gesamtes USB-Laufwerk überprüfen, aber nicht in Ordnern, die mit einem Punkt beginnen (insbesondere .git und .vs) und nicht in einem Ordner namens photos (viele, viele Urlaubs- und Geburtstagsfotos, meine Datei ist nicht darin).

Wie ignoriere ich diese Verzeichnisse?

Antwort1

find . -type d \( -name .git\* -o -name .vs\* -o name photos \) -prune -o -type f -print

Der findobige Befehl verhindert, dass die genannten Verzeichnisse aufgerufen werden, und zeigt in allen anderen Fällen die Namen der gefundenen Entitäten an, bei denen es sich um normale Dateien handelt.

Antwort2

Verwenden Sie den folgenden Befehl

find . \( ! -name .vs ! -name .git ! -name photos \)  -print

Wo

. first is the current directory

Sie können Ihren Standort auf Wunsch ändern

Sie können auch den folgenden Befehl verwenden.

find .  -not -path "./.git/*" -not -path "./.vs/*" -not -path "./photos/*"

verwandte Informationen