Suchbefehl für andere Verzeichnisse verwenden?

398
Wunderbread

Der Befehl find . -type f -name '*.jpg' -deletelöscht alles im aktuellen Verzeichnis und löscht die Dateien rekursiv von dort.

Was muss in diesem Befehl aktualisiert werden, damit alle Dateien innerhalb eines angegebenen Verzeichnisses entfernt werden, z /users/user/desktop.

0
Hinweis: `-maxdepth` Hannu vor 7 Jahren 1
Hinweis: `Man find`` G-Man vor 7 Jahren 1

1 Antwort auf die Frage

3
Marek Rost

Der findBefehl hat sein erstes Argument als Direktor, in dem er seine Aktion ausführen soll.

Ein einzelner Punkt steht .für das aktuelle Verzeichnis. (Zwei Punkte ..stellen das übergeordnete Verzeichnis dar.) Das heißt, Ihr Befehl löscht alle Dateien mit einem .jpgSuffix im (und unter) dem aktuellen Verzeichnis.

Um beispielsweise alle Dateien mit einem .jpgSuffix in einem anderen Verzeichnis zu löschen, verwenden Sie einfach/Users/username/Desktop

find / Users / Benutzername / Desktop-Typ f -name '* .jpg' -delete
Dies wirkt sich auch auf alle Unterverzeichnisse aus.

Option hinzufügen -maxdepth, um Unterverzeichnisebenen einzuschränken. Der Befehl

find / Users / Benutzername / Desktop -maxdepth 1 -type f -name '* .jpg' -delete
löscht Dateien mit der jpgErweiterung nur aus dem DesktopOrdner; Es greift nicht auf Ordner im Desktop zu.

Beachten Sie, dass Sie mehrere Verzeichnisse auflisten können. zB `find dir1 dir2 dir3 -type f ...` G-Man vor 7 Jahren 1