Ich möchte nach allen Dateien mit der Erweiterung .sql in Ordnern und Unterordnern suchen (rekursiv).
Wie kann ich das machen?
Oder...
find $directory_name -name \*.sql
Beispielsweise
find / -name \*.sql
Oder
find ~ \*.sql
(wobei ~ / home / your_username / entspricht) oder ...
find /usr/local/share/ \*.sql
und so weiter.
Führen Sie dies in der Befehlszeile aus:
cd / && find | grep '\.sql$'
Ändern Sie '/' in das Verzeichnis, in dem Sie suchen möchten.
Der find
Befehl ist in der Lage, die Aufgabe ohne grep (unter Verwendung zusätzlicher Optionen) auszuführen, aber ich finde die obige Verwendung bequemer.
In der Reihenfolge der obigen Befehl:
cd /
)find
)| grep '\.sql$'
) enden.
find
hat bereits FiltermöglichkeitenIch weiß, dass dies ein alter Beitrag ist, aber ich bin ziemlich neu in diesem und ich habe einen einfachen Weg gefunden, um alle Dateien einer bestimmten Erweiterung in einem Verzeichnis und seinen untergeordneten Unterverzeichnissen zu finden. Nun, Sie navigieren zuerst zu "
parent Directory
then"find . -name '*.sql'
und dann finden Sie alle Dateien mit der Erweiterung " .sql" in den Verzeichnissen und deren Unterverzeichnissen.In meinem Fall wollte ich alle .xml- Dateien im Verzeichnis und seinen Unterverzeichnissen löschen. Was ich also getan habe, ist, dass ich remove wie hier hinzugefügt habe
find . -name '*.xml' | xargs rm
Hoffe das hilft jemandem :)
quelle
find
versteht den-delete
Befehl. Keine Notwendigkeit zu involvierenrm
. Oder Sie können den-exec
Befehl verwenden, um ihn direkt aufzurufen, ohne den Umweg über eine Pipe undxargs
.Wenn es nicht installiert ist, installieren Sie es zuvor mit:
quelle
mlocate.db
Instanz voraus, die in Ubuntu nicht standardmäßig eingerichtet ist (ich glaube). Warum auch nicht einfachlocate '/folder/path/*.sql'
?locate
hat eine andere Einstellung als Regex in verwendetegrep
locate
Entspricht glob-Ausdrücken/folder/path/*.sql
, nicht regulären Ausdrücken.man locate
ich verstehe,-r, --regexp REGEXP - Search for a basic regexp REGEXP
also nahm ich an, dass es ein Regex war. Wie auch immer, ich habe Ihren "globalen Ausdruck" ausprobiert, aber es tut mir leid--regex
nicht angegeben,PATTERN
kann s glühende Zeichen enthalten.“ ( Quelle )